← Back to all sparks
P

plogr

INFRA · APIS
Velocity0.0

The 'plog' C++ Logging Library

A logging header for Rcpp packages that sat untouched for nine years, then changed how it switches on

cpp-loggingrcppheader-onlybuild-configurationr-package
Current state
plogr ships a stripped build of the plog C++ logging library as an R package, so other packages with C++ code can log through REprintf() and have output land in the R console rather than stdout. It is a header-only dependency with no R-level API to speak of. Three releases in September 2016 established it; the next arrived in November 2025.
Where it's heading
There is almost no trajectory to read here, which is itself the finding — the package was finished in a week and stayed finished. The 2025 release is the first change in nine years and it tightens the activation contract: logging now does nothing unless PLOGR_ENABLE is defined at compile time, so packages depending on it get silence by default rather than unexpected output. A GCC-specific fix for function names in multi-argument template classes lands alongside.
Prediction
With the activation macro now explicit, dependent packages that assumed logging was on will need to define it; beyond that the entries give no basis for expecting further development.

Recent moves

  1. 9mo ago

    Logging now requires PLOGR_ENABLE at compile time

    Makes PLOGR_ENABLE mandatory for the library to do anything, so dependent packages must opt in explicitly rather than inheriting logging by default. A GCC fix restores return types for functions in template classes with multiple arguments. The first change to this package in nine years.

    View source ↗
  2. 9y ago

    plog 1.0-1 wrapped with an R-aware initialiser

    Packages a stripped plog 1.0-1 that builds on Linux, macOS and Windows, and adds plog::init_r() to route output through REprintf() with the log level settable as a string. This is the release that defined the package's scope for the following decade.

    View source ↗
  3. 9y ago

    Severity codes accepted as strings

    Accepts upper-case severity codes as strings and allows the severity filter to be changed. An ergonomic step on the way to the init_r() interface that shipped a day later.

    View source ↗
  4. 9y ago

    CI wired up, duplicate appender guard added

    Adds Travis and AppVeyor builds, a guard against registering the same appender twice, package documentation, and the switch to REprintf(). Early scaffolding from the package's first week.

    View source ↗