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).