R/layouts.R
layout_json_parser.RdGenerate log layout function rendering JSON after merging meta fields with parsed list from JSON message
layout_json_parser(fields = default_fields())This functionality depends on the jsonlite package.
Other log_layouts:
get_logger_meta_variables(),
layout_blank(),
layout_gha(),
layout_glue(),
layout_glue_colors(),
layout_glue_generator(),
layout_json(),
layout_logging(),
layout_simple()
log_formatter(formatter_json)
log_info(everything = 42)
#> INFO [2025-09-17 13:55:09] {"everything":42}
log_layout(layout_json_parser())
log_info(everything = 42)
#> {"time":"2025-09-17 13:55:09","level":"INFO","ns":"global","ans":"global","topenv":"R_GlobalEnv","fn":"eval","node":"ip-10-2-72-104","arch":"x86_64","os_name":"Linux","os_release":"6.2.0-1018-aws","os_version":"#18~22.04.1-Ubuntu SMP Wed Jan 10 22:54:16 UTC 2024","pid":3959154,"user":"elizabethb","everything":42}
log_layout(layout_json_parser(fields = c("time", "node")))
log_info(cars = row.names(mtcars), species = unique(iris$Species))
#> {"time":"2025-09-17 13:55:09","node":"ip-10-2-72-104","cars":["Mazda RX4","Mazda RX4 Wag","Datsun 710","Hornet 4 Drive","Hornet Sportabout","Valiant","Duster 360","Merc 240D","Merc 230","Merc 280","Merc 280C","Merc 450SE","Merc 450SL","Merc 450SLC","Cadillac Fleetwood","Lincoln Continental","Chrysler Imperial","Fiat 128","Honda Civic","Toyota Corolla","Toyota Corona","Dodge Challenger","AMC Javelin","Camaro Z28","Pontiac Firebird","Fiat X1-9","Porsche 914-2","Lotus Europa","Ford Pantera L","Ferrari Dino","Maserati Bora","Volvo 142E"],"species":["setosa","versicolor","virginica"]}
log_layout(layout_json_parser(fields = c(timestamp = "time", "node")))
log_info(
message = paste(
"Compared to the previous example,
the 'time' field is renamed to 'timestamp'"
)
)
#> {"timestamp":"2025-09-17 13:55:09","node":"ip-10-2-72-104","message":"Compared to the previous example,\n the 'time' field is renamed to 'timestamp'"}