New features and quality of life improvements:
log_elapsed() to show cumulative elapsed running
time (#221, @thomasp85)log_errors() gains a traceback argument
that toggles whether the error traceback should be logged along with the
message (fix #86 via #223, @thomasp85)formatter_cli() allows you to use the syntax from
the cli package to create log messages (fix #210 via #225, @thomasp85)log_chunk_time() helper function to automatically
log the execution time of knitr code chunks (fix #222 via #227, @thomasp85)A lot of internal code quality improvements and standardization, improved documentations, modernized tests, performance speedups.
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)layout_gha() for providing native GitHub Action
logging. This automatically gets used when running code in github
actions (@thomasp85)eval scoping and lazy eval (#178, @hadley)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_slackrappender_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