A format for formatting LogEvents as jsonlines log files. This provides a nice balance between human- an machine-readability.
read_json_lines()
, https://jsonlines.org/
Other Layouts:
LayoutFormat
,
LayoutGlue
,
Layout
lgr::Layout
-> LayoutJson
toJSON_args
a list of values passed on to jsonlite::toJSON()
timestamp_fmt
Used by $format_event()
to format timestamps.
Inherited methods
new()
LayoutJson$new(toJSON_args = list(auto_unbox = TRUE), timestamp_fmt = NULL)
set_toJSON_args()
Set arguments to pass on to jsonlite::toJSON()
set_timestamp_fmt()
Set a format that this Layout will apply to timestamps.
x
NULL
(the default): formatting of the timestamp is left to
jsonlite::toJSON()
,
a character
scalar as for format.POSIXct()
, or
a function
that returns a vector of the same length as its
(POSIXct) input. The returned vector can be of any type
supported by jsonlite::toJSON()
, but should usually be character
.
toString()
parse()
# setup a dummy LogEvent
event <- LogEvent$new(
logger = Logger$new("dummy logger"),
level = 200,
timestamp = Sys.time(),
caller = NA_character_,
msg = "a test message",
custom_field = "LayoutJson can handle arbitrary fields"
)
# Default settings show all event fals
lo <- LayoutJson$new()
lo$format_event(event)
#> {"level":200,"timestamp":"2023-03-04 20:04:30","logger":"dummy logger","caller":null,"msg":"a test message","custom_field":"LayoutJson can handle arbitrary fields"}