A quick and easy way to configure the root logger. This is less powerful then using lgr$config() or lgr$set_*() (see Logger), but reduces the most common configurations to a single line of code.

basic_config(
  file = NULL,
  fmt = "%L [%t] %m",
  timestamp_fmt = "%Y-%m-%d %H:%M:%OS3",
  threshold = "info",
  appenders = NULL,
  console = if (is.null(appenders)) "all" else FALSE,
  console_fmt = "%L [%t] %m %f",
  console_timestamp_fmt = "%H:%M:%OS3",
  console_connection = NULL,
  memory = FALSE
)

Arguments

file

character scalar: If not NULL a AppenderFile will be created that logs to this file. If the filename ends in .jsonl, the Appender will be set up to use the JSON Lines format instead of plain text (see AppenderFile and AppenderJson).

fmt

character scalar: Format to use if file is supplied and not a .jsonl file. If NULL it defaults to "%L [%t] %m" (see format.LogEvent)

timestamp_fmt

see format.POSIXct()

threshold

character or integer scalar. The minimum log level that should be processed by the root logger.

appenders

a single Appender or a list thereof.

console

logical scalar or a threshold (see above). Add an appender logs to the console (i.e. displays messages in an interactive R session)

console_fmt

character scalar: like fmt but used for console output

console_timestamp_fmt

character scalar: like timestamp_fmt but used for console output

console_connection

see cat() file argument.

memory

logical scalar. or a threshold (see above). Add an Appender that logs to a memory buffer, see also show_log() and AppenderBuffer

Value

the root Logger (lgr)

Examples

# log to a file
basic_config(file = tempfile())
#> <LoggerRoot> [info] root
#> 
#> appenders:
#>   file   : <AppenderFile>    [all] -> /var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T//RtmpvEKGln/fileffb3e682f73
#>   console: <AppenderConsole> [all] -> console
unlink(lgr$appenders$file$file)  # cleanup

basic_config(file = tempfile(fileext = "jsonl"))
#> <LoggerRoot> [info] root
#> 
#> appenders:
#>   file   : <AppenderFile>    [all] -> /var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T//RtmpvEKGln/fileffb2a034707jsonl
#>   console: <AppenderConsole> [all] -> console
unlink(lgr$appenders$file$file)  # cleanup

# log debug messages to a memory buffer
basic_config(threshold = "all", memory = "all", console = "info")
#> <LoggerRoot> [all] root
#> 
#> appenders:
#>   console: <AppenderConsole> [info] -> console
#>   memory : <AppenderBuffer>  [ all] -> 0 child Appenders
lgr$info("an info message")
#> INFO  [20:04:37.091] an info message
lgr$debug("a hidden message")
show_log()
#> INFO  [20:04:37] an info message
#> DEBUG [20:04:37] a hidden message

# reset to default config
basic_config()
#> <LoggerRoot> [info] root
#> 
#> appenders:
#>   console: <AppenderConsole> [all] -> console