Inject arbitrary values into all LogEvents processed by a Logger/Appender. It is recommended to use filters that modify LogEvents only with Loggers, but they will also work with Appenders.

Super class

lgr::EventFilter -> FilterInject

Public fields

values

a named list of values to be injected into each LogEvent processed by this filter

Methods

Inherited methods


    Method new()

    Initialize a new FilterInject

    Usage

    FilterInject$new(..., .list = list())

    Arguments

    ..., .list

    any number of named R objects that will be injected as custom fields into all LogEvents processed by the Appender/Logger that this filter is attached to. See also with_log_value().


    Method clone()

    The objects of this class are cloneable with this method.

    Usage

    FilterInject$clone(deep = FALSE)

    Arguments

    deep

    Whether to make a deep clone.

    Examples

    lg <- get_logger("test")
    
    analyse <- function(){
      lg$add_filter(FilterInject$new(type = "analysis"), "inject")
      on.exit(lg$remove_filter("inject"))
      lg$error("an error with forced custom 'type'-field")
    }
    
    analyse()
    #> ERROR [20:04:27.715] an error with forced custom 'type'-field {type: `analysis`}
    lg$error("an normal error")
    #> ERROR [20:04:27.725] an normal error
    lg$config(NULL)  # reset config
    #> <Logger> [info] test
    #> 
    #> inherited appenders:
    #>   console: <AppenderConsole> [all] -> console