Print or Format Logging Data
Usage
# S3 method for class 'LogEvent'
print(
x,
fmt = "%L [%t] %m %f",
timestamp_fmt = "%Y-%m-%d %H:%M:%S",
colors = getOption("lgr.colors"),
log_levels = getOption("lgr.log_levels"),
pad_levels = "right",
...
)
# S3 method for class 'LogEvent'
format(
x,
fmt = "%L [%t] %m %f",
timestamp_fmt = "%Y-%m-%d %H:%M:%S",
colors = NULL,
log_levels = getOption("lgr.log_levels"),
pad_levels = "right",
...
)
Arguments
- x
a LogEvent
- fmt
A
character
scalar that may contain any of the tokens listed bellow in the section Format Tokens.- timestamp_fmt
see
format.POSIXct()
- colors
A
list
offunctions
that will be used to color the log levels (likely from crayon::crayon).- log_levels
named
integer
vector of valid log levels- pad_levels
right
,left
orNULL
. Whether or not to pad the log level names to the same width on the left or right side, or not at all.- ...
ignored
Format Tokens
%t
The timestamp of the message, formatted according to
timestamp_fmt
)%l
the log level, lowercase
character
representation%L
the log level, uppercase
character
representation%k
the log level, first letter of lowercase
character
representation%K
the log level, first letter of uppercase
character
representation%n
the log level,
integer
representation%g
the name of the logger
%p
the PID (process ID). Useful when logging code that uses multiple threads.
%c
the calling function
%m
the log message
%f
all custom fields of
x
in a pseudo-JSON like format that is optimized for human readability and console output%j
all custom fields of
x
in proper JSON. This requires that you have jsonlite installed and does not support colors as opposed to%f
Examples
# standard fields can be printed using special tokens
x <- LogEvent$new(
level = 300, msg = "a test event", caller = "testfun()", logger = lgr
)
print(x)
#> WARN [2025-04-14 20:58:51] a test event
print(x, fmt = c("%t (%p) %c: %n - %m"))
#> 2025-04-14 20:58:51 (7042) testfun(): 300 - a test event
print(x, colors = NULL)
#> WARN [2025-04-14 20:58:51] a test event
# custom values
y <- LogEvent$new(
level = 300, msg = "a gps track", logger = lgr,
waypoints = 10, location = "Austria"
)
# default output with %f
print(y)
#> WARN [2025-04-14 20:58:51] a gps track {waypoints: `10`, location: `Austria`}
# proper JSON output with %j
if (requireNamespace("jsonlite")){
print(y, fmt = "%L [%t] %m %j")
}
#> WARN [2025-04-14 20:58:51] a gps track {"waypoints":10,"location":"Austria"}