Skip to contents

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-14 17:00:38] Info message.
cat_info()
#> INFO  [2026-08-14 17:00:38] Info message.
logging_info()
#> 2026-08-14 17:00:38.599963 INFO::Info message.
fl_info()
#> INFO [2026-08-14 17:00:38] Info message.
logger_info()
#> INFO [2026-08-14 17:00:38] Info message.
lgr_info()
rlog_info()
#> 2026-08-14 17:00:38 [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)
)
#> INFO [2026-08-14 17:00:38] Info message.
#> INFO [2026-08-14 17:00:38] Info message.
#> INFO [2026-08-14 17:00:38] Info message.
#> INFO [2026-08-14 17:00:38] Info message.
#> INFO [2026-08-14 17:00:38] Info message.
#> INFO [2026-08-14 17:00:38] Info message.
#> INFO [2026-08-14 17:00:38] Info message.
#> INFO [2026-08-14 17:00:38] Info message.
#> INFO [2026-08-14 17:00:38] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:39] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:40] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] Info message.
#> INFO [2026-08-14 17:00:41] 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
#>          log4r   24.015   43.8865   57.76819   54.9570   63.2585  1696.684
#>            cat   41.868   61.3040   89.65570   68.8035   78.2405  3626.021
#>           rlog   77.885  114.2280  139.31924  126.7765  140.2570  2325.175
#>         logger  299.338  401.2480  466.94466  442.2995  501.3650  2409.332
#>        logging  533.575  673.9515  840.07280  725.3625  791.8315 13227.693
#>  futile.logger  817.424  983.5740 1153.63248 1082.1270 1195.8095  7837.714
#>            lgr 1605.554 1980.6435 2432.42789 2084.1455 2245.1510 72064.385
#>  neval
#>    500
#>    500
#>    500
#>    500
#>    500
#>    500
#>    500

How long does it take to decide to do nothing?

print(debug_bench, order = "median")
#> Unit: microseconds
#>           expr     min       lq       mean   median       uq      max neval
#>            cat   3.587   5.5610   9.948926   7.0935   8.0055 1429.846   500
#>          log4r   4.568   6.5625  11.984174   8.2000   9.5375 1634.848   500
#>           rlog  11.782  16.9320  23.051512  19.8020  21.7455 1390.964   500
#>            lgr  21.440  27.6010  36.365492  31.3130  33.9335 1982.947   500
#>         logger  25.608  36.0070  45.767828  41.6680  46.0360 1557.544   500
#>        logging  29.424  39.8045  49.511916  45.8110  50.1830 1339.668   500
#>  futile.logger 356.124 409.8740 456.941054 428.2635 451.0260 4683.993   500