Logging Performance

Updated as of 2026-08-04

The following vignette presents benchmarks for log4r against all general-purpose logging packages available on CRAN:

Each logging package features slightly different capabilities, but these benchmarks are focused on the two situations common to using all of them:

  1. Logging simple messages to the console; and
  2. Deciding not to log a message because it is below the threshold.

The first of these is likely the most common kind of logging done by end users, although some may chose to log to files, over HTTP, or to the system log (among others). Yet a benchmark of these other scenarios would largely show the relative expense of these operations, instead of the overhead of the logic performed by the logging packages themselves.

The second measures the performance impact of leaving logging messages in running code, even if they are below the current threshold of visibility. This is another measure of overhead for each logging package.

Using cat()

As a reference point, we can measure how long it takes R itself to write a simple message to the console:

cat_debug <- function() {
  cat() # Print nothing.
}

cat_info <- function() cat(
  "INFO  [", format(Sys.time(), "%Y-%m-%d %H:%M:%S", usetz = FALSE),
  "] Info message.", sep = ""
)

The log4r Package

The following is a typical log4r setup:

log4r_logger <- log4r::logger(threshold = "INFO")

log4r_info <- function() {
  log4r::log_info(log4r_logger, "Info message.")
}

log4r_debug <- function() {
  log4r::log_debug(log4r_logger, "Debug message.")
}

The futile.logger Package

The following is a typical futile.logger setup:

requireNamespace("futile.logger")
#> Loading required namespace: futile.logger

futile.logger::flog.logger()

fl_info <- function() {
  futile.logger::flog.info("Info message.")
}

fl_debug <- function() {
  futile.logger::flog.debug("Debug message.")
}

The logging Package

The following is what I believe to be a typical logging setup:

requireNamespace("logging")
#> Loading required namespace: logging

logging::basicConfig()

logging_info <- function() {
  logging::loginfo("Info message.")
}

logging_debug <- function() {
  logging::logdebug("Debug message.")
}

The logger Package

The following is what I believe to be a typical logger setup:

requireNamespace("logger")
#> Loading required namespace: logger
#> Registered S3 method overwritten by 'logger':
#>   method         from 
#>   print.loglevel log4r

# Match the behaviour of other logging packages and write to the console.
logger::log_appender(logger::appender_stdout)

logger_info <- function() {
  logger::log_info("Info message.")
}

logger_debug <- function() {
  logger::log_debug("Debug message.")
}

The lgr Package

The following is what I believe to be a typical lgr setup:

requireNamespace("lgr")
#> Loading required namespace: lgr

lgr_logger <- lgr::get_logger("perf-test")
lgr_logger$set_appenders(list(cons = lgr::AppenderConsole$new()))
lgr_logger$set_propagate(FALSE)

lgr_info <- function() {
  lgr_logger$info("Info message.")
}

lgr_debug <- function() {
  lgr_logger$debug("Debug message.")
}

The rlog Package

The rlog package currently has no configuration options other than the threshold, which is controlled via an environment variable and defaults to hiding debug-level messages:

requireNamespace("rlog")
#> Loading required namespace: rlog

rlog_info <- function() {
  rlog::log_info("Info message.")
}

rlog_debug <- function() {
  rlog::log_debug("Debug message.")
}

Test All Loggers

Debug messages should print nothing.

log4r_debug()
cat_debug()
logging_debug()
fl_debug()
logger_debug()
lgr_debug()
rlog_debug()

Info messages should print to the console. Small differences in output format are to be expected.

log4r_info()
#> INFO  [2026-08-04 15:03:23] Info message.
cat_info()
#> INFO  [2026-08-04 15:03:23] Info message.
logging_info()
#> 2026-08-04 15:03:23.480529 INFO::Info message.
fl_info()
#> INFO [2026-08-04 15:03:23] Info message.
logger_info()
#> INFO [2026-08-04 15:03:23] Info message.
lgr_info()
rlog_info()
#> 2026-08-04 15:03:23 [INFO] Info message.

Benchmarks

The following benchmarks all loggers defined above:

info_bench <- microbenchmark::microbenchmark(
  cat = cat_info(),
  log4r = log4r_info(),
  futile.logger = fl_info(),
  logging = logging_info(),
  logger = logger_info(),
  lgr = lgr_info(),
  rlog = rlog_info(),
  times = 500,
  control = list(warmups = 50)
)
#> Warning in microbenchmark::microbenchmark(cat = cat_info(), log4r =
#> log4r_info(), : less accurate nanosecond times to avoid potential integer
#> overflows
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.
#> INFO [2026-08-04 15:03:23] Info message.

debug_bench <- microbenchmark::microbenchmark(
  cat = cat_debug(),
  log4r = log4r_debug(),
  futile.logger = fl_debug(),
  logging = logging_debug(),
  logger = logger_debug(),
  lgr = lgr_debug(),
  rlog = rlog_debug(),
  times = 500,
  control = list(warmups = 50)
)

How long does it take to print messages?

print(info_bench, order = "median")
#> Unit: microseconds
#>           expr     min       lq      mean   median       uq       max neval cld
#>          log4r   7.134   8.7330  10.16652   9.1020   9.6350   440.094   500 a  
#>            cat  12.751  14.3705  17.62738  15.0060  15.7440   777.606   500 a  
#>           rlog  17.015  20.3770  22.04299  21.3610  22.1400   293.273   500 a  
#>         logger  58.220  67.1170  73.02879  68.7980  69.9665   939.802   500   c
#>        logging  92.660  99.7530 109.45057 102.3770 104.4475  2421.624   500   c
#>  futile.logger 146.985 162.0320 176.88105 166.6855 170.7650  2800.013   500  b 
#>            lgr 167.854 177.8990 213.69659 181.3430 184.2745 11377.090   500  b

How long does it take to decide to do nothing?

print(debug_bench, order = "median")
#> Unit: nanoseconds
#>           expr   min    lq      mean median    uq     max neval  cld
#>            cat   820  1066  1619.910   1148  1189  245426   500 a   
#>          log4r   943  1312  2094.444   1435  1476  357602   500 a   
#>           rlog  2337  2911  3586.352   3116  3239  253216   500 a  d
#>            lgr  5207  6273  7010.508   6519  6724  270477   500 a c 
#>        logging  6396  7544 10825.394   7954  8118 1207040   500   c 
#>         logger  6478  7626  8471.666   7995  8200  252765   500   cd
#>  futile.logger 70520 74251 79348.530  75276 76875 1231271   500  b