Logging Performance

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 loggit Package

The following is what I believe to be a typical loggit setup. Since we only want to log to the console, set the output file to /dev/null. In addition, loggit does not have a notion of thresholds, so there is no “do nothing” operation to test.

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

if (.Platform$OS.type == "unix") {
  loggit::set_logfile("/dev/null")
} else {
  loggit::set_logfile("nul")
}

loggit_info <- function() {
  loggit::loggit("INFO", "Info 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-07-01 18:05:11] Info message.
cat_info()
#> INFO  [2026-07-01 18:05:11] Info message.
logging_info()
#> 2026-07-01 18:05:11.993222 INFO::Info message.
fl_info()
#> INFO [2026-07-01 18:05:11] Info message.
logger_info()
#> INFO [2026-07-01 18:05:11] Info message.
lgr_info()
loggit_info()
#> {"timestamp": "2026-07-01T18:05:11+0000", "log_lvl": "INFO", "log_msg": "Info message."}
rlog_info()
#> 2026-07-01 18:05:12 [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(),
  loggit = loggit_info(),
  rlog = rlog_info(),
  times = 500,
  control = list(warmups = 50)
)
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:12] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] Info message.
#> INFO [2026-07-01 18:05:13] 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
#>          log4r  14.667  27.9020  33.31747  31.0655  35.3075   973.255   500
#>            cat  26.978  36.3200  46.36387  45.5415  50.1220  1239.381   500
#>           rlog  44.789  66.6600  75.26065  75.2170  80.9865   902.711   500
#>         logger 156.658 235.8010 265.87455 247.5670 258.1575  7762.566   500
#>        logging 245.933 320.9410 354.05188 337.6095 352.5260  7242.244   500
#>  futile.logger 486.675 558.3195 586.18791 578.9525 598.1125  2722.535   500
#>            lgr 521.419 589.5515 700.65617 607.6050 624.2145 28853.119   500
#>         loggit 546.789 600.6240 627.80424 619.1705 636.1985  2878.722   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   1.774   2.1970   4.173080   2.7250   3.3400  661.011   500
#>          log4r   2.146   2.6725   5.472280   3.1740   4.1130  999.660   500
#>           rlog   5.792   7.0175   9.971624   8.2315   9.4900  706.094   500
#>            lgr  11.424  13.4870  17.030786  15.0770  17.4290  706.548   500
#>         logger  14.173  16.6305  26.132678  18.5870  21.3785 2671.448   500
#>        logging  14.092  16.8645  22.291446  19.8225  23.7650  740.672   500
#>  futile.logger 159.812 176.6335 194.707022 184.8885 194.5545 2983.917   500