Skip to contents

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 the namespace as well via logger:::top_env_name

Value

character vector

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