The logging package uses a formatter that behaves differently
when the input is a string or other R object. If the first argument
is a string, then sprintf()
is being called – otherwise it does
something like log_eval()
and logs the R expression(s) and the
result(s) as well.
Usage
formatter_logging(
...,
.logcall = sys.call(),
.topcall = sys.call(-1),
.topenv = parent.frame()
)
Arguments
- ...
string and further params passed to
sprintf
or R expressions to be evaluated- .logcall
the logging call being evaluated (useful in formatters and layouts when you want to have access to the raw, unevaluated R expression)
- .topcall
R expression from which the logging function was called (useful in formatters and layouts to extract the calling function's name or arguments)
- .topenv
original frame of the
.topcall
calling function where the formatter function will be evaluated and that is used to look up thenamespace
as well vialogger:::top_env_name
See also
Other log_formatters:
formatter_glue()
,
formatter_glue_or_sprintf()
,
formatter_glue_safe()
,
formatter_json()
,
formatter_pander()
,
formatter_paste()
,
formatter_sprintf()
Examples
log_formatter(formatter_logging)
log_info("42")
#> INFO [2024-10-21 07:31:15] 42
log_info(42)
#> INFO [2024-10-21 07:31:15] 42: 42
log_info(4 + 2)
#> INFO [2024-10-21 07:31:15] 4 + 2: 6
log_info("foo %s", "bar")
#> INFO [2024-10-21 07:31:15] foo bar
log_info("vector %s", 1:3)
#> INFO [2024-10-21 07:31:15] vector 1
#> INFO [2024-10-21 07:31:15] vector 2
#> INFO [2024-10-21 07:31:15] vector 3
log_info(12, 1 + 1, 2 * 2)
#> INFO [2024-10-21 07:31:15] 12: 12
#> INFO [2024-10-21 07:31:15] 1 + 1: 2
#> INFO [2024-10-21 07:31:15] 2 * 2: 4