• Fixes failing unit tests for the HTTP appender.

  • JSON logs now have newlines, as intended (#30, @brooklynbagel).

  • Updates the R CMD check GitHub Action to a modern version (#27, @hadley).

  • Updates the project to testthat 3e (#26, @hadley).

  • Updates roxygen2 documentation to use Markdown syntax (#25, @hadley).

  • Fixes a potential memory corruption issue identified by rchk. Thanks to Tomas Kalibera for the associated patch.
  • Fixes a crash where 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.

  • Fixes an issue where appender functions did not evaluate all their arguments, leading to surprising behaviour in e.g. loops. Reported by Nicola Farina.
  • There is now a vignette on logger performance.
  • Fixes a missing header file on older versions of R (<= 3.4). (#12)
  • Fixes an issue where default_log_layout() would not validate format strings correctly.
  • A new system for configuring logging, via “Appenders” and “Layouts”. See ?logger, ?appenders, and ?layouts for details.
  • Various fixes and performance improvements.
  • New maintainer: Aaron Jacobs ()
  • Same as v0.1-5.
  • New maintainer: Kirill Müller ()
  • Log levels are now objects of class "loglevel", access to the hidden constants, e.g., log4r:::DEBUG, is deprecated (#4).