knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-",
  out.width = "100%"
)

logger logger website

Project Status: Active – The project has reached a stable, usable state and is being actively developed. CRAN Build Status Code Coverage A Mikata Project

A lightweight, modern and flexible logging utility for R -- heavily inspired by the futile.logger R package and logging Python module.

Installation

CRAN version

#| eval: false
install.packages("logger")

The most recent, development version of logger can also be installed from GitHub:

#| eval: false
# install.packages("pak")
pak::pak("daroczig/logger")

Quick example

Setting the log level threshold to something low and logging various messages in ad-hoc and programmatic ways:

#| include: false
library(logger)
log_appender(appender_stdout)
library(logger)
log_threshold(DEBUG)
log_info("Script starting up...")

pkgs <- available.packages()
log_info("There are {nrow(pkgs)} R packages hosted on CRAN!")

for (letter in letters) {
  lpkgs <- sum(grepl(letter, pkgs[, "Package"], ignore.case = TRUE))
  log_level(
    if (lpkgs < 5000) TRACE else DEBUG,
    "{lpkgs} R packages including the {shQuote(letter)} letter"
  )
}

log_warn("There might be many, like {1:2} or more warnings!!!")

You can even use a custom log layout to render the log records with colors, as you can see in layout_glue_colors():

colored log output

But you could set up any custom colors and layout, eg using custom colors only for the log levels, make it grayscale, include the calling function or R package namespace with specific colors etc. For more details, see vignette("write_custom_extensions").

Related work

There are many other logging packages available on CRAN:

Why use logger? I decided to write the n+1th extensible log4j logger that fits my liking --- and hopefully yours as well --- with the aim to:

Welcome to the Bazaar! If you already use any of the above packages for logging, you might find vignette("migration") useful.

Interested in more details?

::: .pkgdown-hide

Check out the main documentation site at https://daroczig.github.io/logger/ or the vignettes on the below topics:

:::

If you prefer visual content, you can watch the video recording of the "Getting things logged" talk at RStudio::conf(2020):

Gergely Daroczi presenting "Getting things logged" on using the logger R package at the RStudio conference in 2020



daroczig/logger documentation built on Oct. 22, 2024, 12:25 p.m.