A logger consists of a log level threshold
, a log message
formatter
function, a log record layout
formatting function and
the appender
function deciding on the destination of the log
record. For more details, see the package README.md
.
Arguments
- threshold
omit log messages below this
log_levels()
- formatter
function pre-processing the message of the log record when it's not wrapped in a
skip_formatter()
call- layout
function rendering the layout of the actual log record
- appender
function writing the log record
Value
A function taking the log level
to compare with the set
threshold, all the ...
arguments passed to the formatter
function, besides the standard namespace
, .logcall
,
.topcall
and .topenv
arguments (see log_level()
for more
details). The function invisibly returns a list including the
original level
, namespace
, all ...
transformed to a list as
params
, the log message
(after calling the formatter
function) and the log record
(after calling the layout
function), and a list of handlers
with the formatter
,
layout
and appender
functions.
Details
By default, a general logger definition is created when loading the logger
package, that uses
INFO()
(or as per theLOGGER_LOG_LEVEL
environment variable override) as the log level thresholdlayout_simple()
as the layout function showing the log level, timestamp and log messageformatter_glue()
(orformatter_sprintf()
if glue is not installed) as the default formatter function transforming the R objects to be logged to a character vectorappender_console()
as the default log record destination
Note
It's quite unlikely that you need to call this function
directly, but instead set the logger parameters and functions at
log_threshold()
, log_formatter()
, log_layout()
and
log_appender()
and then call log_levels()
and its
derivatives, such as log_info()
directly.
References
For more details, see the Anatomy of a Log Request vignette at https://daroczig.github.io/logger/articles/anatomy.html.