Format a LogEvent as human readable text using glue::glue. The function is evaluated in an environment in which it has access to all elements of the LogEvent (see examples). This is more flexible than LayoutFormat, but also more complex and slightly less performant.
lgr exports a number of formatting utility functions that are
useful for layout glue: colorize_levels()
, pad_left()
, pad_right()
.
Other Layouts:
LayoutFormat
,
LayoutJson
,
Layout
lgr::Layout
-> LayoutGlue
fmt
A string that will be interpreted by glue::glue()
Inherited methods
new()
LayoutGlue$new(
fmt = "{pad_right(colorize_levels(toupper(level_name)), 5)} [{timestamp}] {msg}"
)
toString()
lg <- get_logger("test")$
set_appenders(AppenderConsole$new())$
set_propagate(FALSE)
lg$appenders[[1]]$set_layout(LayoutGlue$new())
lg$fatal("test")
#> FATAL [2023-03-04 20:04:30] test
# All fields of the LogEvent are available, even custom ones
lg$appenders[[1]]$layout$set_fmt(
"{logger} {level_name}({level}) {caller}: {toupper(msg)} {{custom: {custom}}}"
)
lg$fatal("test", custom = "foobar")
#> test fatal(100) eval: TEST {custom: foobar}
lg$config(NULL) # reset logger config
#> <Logger> [info] test
#>
#> inherited appenders:
#> console: <AppenderConsole> [all] -> console