Log to a file
A simple Appender that outputs to a file in the file system. If you plan
to log to text files, consider logging to JSON files and take a look at
AppenderJson, which is a shortcut for AppenderFile
preconfigured with
LayoutJson
.
lgr::Filterable
-> lgr::Appender
-> AppenderFile
file
character
scalar. path to the log file
data
character
scalar. Contents of file
parsed to a
data.frame
if used with a Layout that supports parsing of log
file data (notably LayoutJson).
data
character
scalar. Like $data
, but returns a data.table
instead (requires the data.table package).
new()
AppenderFile$new( file, threshold = NA_integer_, layout = LayoutFormat$new(), filters = NULL )
append()
AppenderFile$append(event)
set_file()
Set a log file
AppenderFile$set_file(file)
file
character
scalar. Path to the log file. If file
does not
exist it will be created.
show()
Display the contents of the log file.
AppenderFile$show(threshold = NA_integer_, n = 20L)
threshold
character
or integer
scalar. The minimum log level
that should be displayed.
n
integer
scalar. Show only the last n
log entries that match
threshold
.
lgr::Filterable
-> lgr::Appender
-> lgr::AppenderFile
-> AppenderJson
new()
AppenderJson$new( file, threshold = NA_integer_, layout = LayoutJson$new(), filters = NULL )
lg <- get_logger("test") default <- tempfile() fancy <- tempfile() json <- tempfile() lg$add_appender(AppenderFile$new(default), "default") lg$add_appender( AppenderFile$new(fancy, layout = LayoutFormat$new("[%t] %c(): %L %m")), "fancy" ) lg$add_appender( AppenderFile$new(json, layout = LayoutJson$new()), "json" ) lg$info("A test message") readLines(default) readLines(fancy) readLines(json) # cleanup lg$config(NULL) unlink(default) unlink(fancy) unlink(json) tf <- tempfile() lg <- get_logger("test")$ set_appenders(AppenderJson$new(tf))$ set_propagate(FALSE) lg$info("A test message") lg$info("A test message %s strings", "with format strings", and = "custom_fields") lg$appenders[[1]]$show() lg$appenders[[1]]$data # cleanup lg$config(NULL) unlink(tf)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.