Changelog
Source:NEWS.md
logger (development version)
New features
- logo 😻 (#196, @hadley)
- computing metadata lazily, so various expensive computations are only performed if you actually add them to the log (#105, @hadley)
-
log_appender()
,log_layout()
andlog_formatter()
now check that you are calling them with a function, and return the previously set value (#170, @hadley) - new function to return number of log indices (#194, @WurmPeter)
-
appender_async
is now usingmirai
instead of a custom background process and queue system (#214, @hadley @shikokuchuo)
Housekeeping
- update
pkgdown
site to Bootstrap 5 and related revamp, e.g. reference index and run/show examples (#159 #165 #193, @hadley) - roxygen updated to use markdown, general cleanup (#160 #161 #191 #201, @hadley)
- testing improvements, e.g. move to
testthat
v3 and snapshots, syntactic sugar (#163 #167 #168 #169 #171 #192, @hadley) - README tweaks (#162 #176, @hadley)
- modernize GitHub Actions (#171, @hadley)
- drop support for R versions below 4.0.0 (#177, @hadley)
- internal function tweaks (#181 #187 #197, @hadley)
- restyle sources (#185 #186 #191 #199, @daroczig and @hadley)
logger 0.3.0 (2024-03-03)
CRAN release: 2024-03-05
Many unrelated small features, fixes and documentation updates collected over 2+ years.
New features
- update
log_*
functions to invisibly return the formatted log message and record (#26, @r2evans) - add
namespace
argument tolog_shiny_input_changes
(#93, @kpagacz) - optionally suppress messages in
globalCallingHandlers
after being logged (#100, @DanChaltiel) -
as.loglevel
helper to convert string/number to loglevel (requested by @tentacles-from-outer-space) - new formatter function:
formatter_glue_safe
(#126, @terashim) - support
OFF
log level (#138, @pawelru) - override default
INFO
log level via env var (#145, requested by sellorm)
Fixes
- handle zero-length messages in
formatter_glue_or_sprintf
(#74, @deeenes) - generalize
log_separator
to work with all layout functions (#96, @Polkas) - support log levels in
log_shiny_input_changes
(#103, @taekeharkema) - fix fn name lookup/reference with nested calls (#120, reported by @averissimo)
- force the
file
argument ofappender_tee
(#124, reported by @dbontemps) - don’t allow stacking logger hooks on messages/warnings/errors (reported by @jkeuskamp)
- improve fragile test case when
Hmisc
loaded (#131, @r2evans) - pass
index
,namespace
etc fromlog_
functions down tolog_level
(#143, @MichaelChirico) - refer to the caller function in global message logger hooks (#146, reported by @gabesolomon10)
logger 0.2.2 (2021-10-10)
CRAN release: 2021-10-19
Maintenance release:
- fix unbalanced code chunk delimiters in vignette (yihui/knitr#2057)
logger 0.2.1 (2021-07-06)
CRAN release: 2021-07-06
Maintenance release:
- update
appender_slack
to useslackr_msg
instead oftext_slackr
logger 0.2.0 (2021-03-03)
CRAN release: 2021-03-04
Breaking changes
-
appender_console
writes tostderr
by default instead ofstdout
(#28)
Fixes
- default date format in
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) thefn
even for large anonymous functions (#20)
New features
- allow defining the log level threshold as a string (#13, @artemklevtsov)
- allow updating the log level threshold, formatter, layout and appender in all namespaces with a single call (#50)
- new argument to
appender_file
to optionally truncate before appending (#24, @eddelbuettel) - new arguments to
appender_file
to optionally rotate the log files after appending (#42) - new meta variables for logging in custom layouts: R version and calling package’s version
- improved performance by not evaluating arguments when the log record does not meet the log level threshold (#27, @jozefhajnala)
-
logger
in now part of the Mikata Project: https://mikata.dev
New helper functions
-
%except%
: evaluate an expression with fallback -
log_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 usingglobalCallingHandlers
on R 4.0.0 and above, and injectinglogger
calls tomessage
,warnings
andstop
below R 4.0.0 -
log_shiny_input_changes
: auto-log input changes in Shiny apps (#25)
New formatter functions
-
layout_pander
: transform R objects into markdown before logging (#22)
New layout functions
-
layout_blank
: blank log messages without any modification -
layout_json_parser
: render the layout as a JSON blob after merging with requested meta fields
New appender functions
-
appender_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)
logger 0.1 (2018-12-20)
CRAN release: 2019-01-02
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
- a log level
threshold
, - a
formatter
function preparing the log message, - a
layout
function rendering the actual log records and - an
appender
function delivering to the log destination
- a log level
detailed documentation with 7 vignettes and a lot of examples, even some benchmarks
~75% code coverage for unit tests
5
formatter
functions mostly usingpaste
,sprintf
andglue
6
layout
functions with convenient wrappers to let users define custom layouts viaglue
orJSON
, including colorized output5
appender
functions delivering log records to the console, files, Pushbullet and Slackhelper 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
andfutile.logger
packages