The following vignette presents benchmarks for log4r against all general-purpose logging packages available on CRAN:
- futile.logger and logging, which are well-established packages; and
- logger, lgr, and rlog, all of which are relative newcomers.
Each logging package features slightly different capabilities, but these benchmarks are focused on the two situations common to using all of them:
- Logging simple messages to the console; and
- 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:
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-09-04 19:48:52] Info message.
cat_info()
#> INFO [2026-09-04 19:48:52] Info message.
logging_info()
#> 2026-09-04 19:48:52.32146 INFO::Info message.
fl_info()
#> INFO [2026-09-04 19:48:52] Info message.
logger_info()
#> INFO [2026-09-04 19:48:52] Info message.
lgr_info()
rlog_info()
#> 2026-09-04 19:48:52 [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-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:52] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] Info message.
#> INFO [2026-09-04 19:48:53] 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
#> log4r 14.266 24.3855 29.52801 26.5995 33.0615
#> cat 25.638 32.7110 41.83937 38.2415 45.3000
#> rlog 46.357 62.6415 71.68230 68.2080 76.2880
#> logger 180.557 217.9015 233.63031 227.7105 238.8210
#> logging 320.578 367.0800 401.85986 377.7305 396.9210
#> futile.logger 480.146 537.1280 560.98487 557.0150 573.7310
#> lgr 981.402 1025.7400 1169.18342 1041.2040 1059.9090
#> max neval
#> 902.405 500
#> 1302.372 500
#> 1101.837 500
#> 1842.169 500
#> 6797.821 500
#> 2557.395 500
#> 32435.035 500How long does it take to decide to do nothing?
print(debug_bench, order = "median")
#> Unit: microseconds
#> expr min lq mean median uq max
#> cat 1.943 2.7050 4.994764 3.6270 4.0470 754.629
#> log4r 2.555 3.3815 6.032838 4.1630 4.9145 830.851
#> rlog 6.883 8.4355 11.571084 10.3540 11.0555 753.377
#> lgr 12.423 14.5570 21.950378 16.6565 17.6580 1808.487
#> logger 16.050 19.0050 23.613552 22.0565 24.0050 774.155
#> logging 16.731 20.1180 25.291466 24.1700 25.7835 772.954
#> futile.logger 205.103 211.7200 227.346256 217.3960 232.5845 2048.224
#> neval
#> 500
#> 500
#> 500
#> 500
#> 500
#> 500
#> 500