logfmt_log_layout()
would not correctly handle memory reallocation of the underlying buffer.Fixes a crash when the logfmt_log_layout()
is passed long fields that also need escaping.
logfmt_log_layout()
now drops fields with missing names rather than writing NA
, which matches the existing handling of other empty/unrepresentable field names.
Support for structured logging by passing additional named parameters to the existing logging functions. This includes two new structured-logging layouts for JSON and logfmt and a vignette on using them: “Structured Logging”.
New built-in appenders for writing to the Unix system log, via HTTP, and to TCP connections, plus a vignette on using them: “Logging Beyond Local Files”.
A new bare_log_layout()
for when you don’t want the level or timestamp handled automatically. This is most useful for the syslog_appender()
.
Log messages prior to the last entry are no longer lost when a file appender is created with append = FALSE
. Instead, the file is truncated only when the appender is created, as intended. Fixes #17.
default_log_layout()
would not validate format strings correctly.?logger
, ?appenders
, and ?layouts
for details."loglevel"
, access to the hidden constants, e.g., log4r:::DEBUG
, is deprecated (#4).