log_appender()
, log_layout()
and log_formatter()
now check that you are calling them with a function, and return the previously set value (#170, @hadley)appender_async
is now using mirai
instead of a custom background process and queue system (#214, @hadley @shikokuchuo)pkgdown
site to Bootstrap 5 and related revamp, e.g. reference index and run/show examples (#159 #165 #193, @hadley)testthat
v3 and snapshots, syntactic sugar (#163 #167 #168 #169 #171 #192, @hadley)Many unrelated small features, fixes and documentation updates collected over 2+ years.
log_*
functions to invisibly return the formatted log message and record (#26, @r2evans)namespace
argument to log_shiny_input_changes
(#93, @kpagacz)globalCallingHandlers
after being logged (#100, @DanChaltiel)as.loglevel
helper to convert string/number to loglevel (requested by @tentacles-from-outer-space)formatter_glue_safe
(#126, @terashim)OFF
log level (#138, @pawelru)INFO
log level via env var (#145, requested by sellorm)formatter_glue_or_sprintf
(#74, @deeenes)log_separator
to work with all layout functions (#96, @Polkas)log_shiny_input_changes
(#103, @taekeharkema)file
argument of appender_tee
(#124, reported by @dbontemps)Hmisc
loaded (#131, @r2evans)index
, namespace
etc from log_
functions down to log_level
(#143, @MichaelChirico)Maintenance release:
Maintenance release:
appender_slack
to use slackr_msg
instead of text_slackr
appender_console
writes to stderr
by default instead of stdout
(#28)glue
layouts (#44, @burgikukac)fn
reference in loggers will not to a Cartesian join on the log lines and message, but merge (and clean up) the fn
even for large anonymous functions (#20)appender_file
to optionally truncate before appending (#24, @eddelbuettel)appender_file
to optionally rotate the log files after appending (#42)logger
in now part of the Mikata Project: https://mikata.dev%except%
: evaluate an expression with fallbacklog_separator
: logging with separator lines (#16)log_tictoc
: tic-toc logging (#16, @nfultz)log_failure
: log error before failing (#19, @amy17519)log_messages
, log_warnings
, log_errors
: optionally auto-log messages, warnings and errors using globalCallingHandlers
on R 4.0.0 and above, and injecting logger
calls to message
, warnings
and stop
below R 4.0.0log_shiny_input_changes
: auto-log input changes in Shiny apps (#25)layout_pander
: transform R objects into markdown before logging (#22)layout_blank
: blank log messages without any modificationlayout_json_parser
: render the layout as a JSON blob after merging with requested meta fieldsappender_telegram
: deliver log records to Telegram (#14, @artemklevtsov)appender_syslog
: deliver log records to syslog (#30, @atheriel)appender_kinesis
: deliver log records to Amazon Kinesis (#35)appender_async
: wrapper function for other appender functions to deliver log records in a background process asynchronously without blocking the master process (#35)Initial CRAN release after collecting feedback for a month on Twitter at https://twitter.com/daroczig/status/1067461632677330944
:
finalized design of a log request defined by
threshold
,formatter
function preparing the log message,layout
function rendering the actual log records andappender
function delivering to the log destinationdetailed documentation with 7 vignettes and a lot of examples, even some benchmarks
~75% code coverage for unit tests
5 formatter
functions mostly using paste
, sprintf
and glue
6 layout
functions with convenient wrappers to let users define custom layouts via glue
or JSON
, including colorized output
5 appender
functions delivering log records to the console, files, Pushbullet and Slack
helper function to evaluate an expressions with auto-logging both the expression and its result
helper function to temporarily update the log level threshold
helper function to skip running the formatter function on a log message
mostly backward compatibly with the logging
and futile.logger
packages