Format a LogEvent as human readable text using glue::glue. The function is evaluated in an environment in which it has access to all elements of the LogEvent (see examples). This is more flexible than LayoutFormat, but also more complex and slightly less performant.

See also

lgr exports a number of formatting utility functions that are useful for layout glue: colorize_levels(), pad_left(), pad_right().

Other Layouts: LayoutFormat, LayoutJson, Layout

Super class

lgr::Layout -> LayoutGlue

Active bindings

fmt

A string that will be interpreted by glue::glue()

Methods

Inherited methods


    Method new()

    Usage

    LayoutGlue$new(
      fmt = "{pad_right(colorize_levels(toupper(level_name)), 5)} [{timestamp}] {msg}"
    )


    Method format_event()

    Usage

    LayoutGlue$format_event(event)


    Method set_fmt()

    Usage

    LayoutGlue$set_fmt(x)


    Method set_colors()

    Usage

    LayoutGlue$set_colors(x)


    Method toString()

    Usage

    LayoutGlue$toString()


    Method clone()

    The objects of this class are cloneable with this method.

    Usage

    LayoutGlue$clone(deep = FALSE)

    Arguments

    deep

    Whether to make a deep clone.

    Examples

    lg <- get_logger("test")$
      set_appenders(AppenderConsole$new())$
      set_propagate(FALSE)
    
    lg$appenders[[1]]$set_layout(LayoutGlue$new())
    lg$fatal("test")
    #> FATAL [2023-03-04 20:04:30] test
    
    
    # All fields of the LogEvent are available, even custom ones
    lg$appenders[[1]]$layout$set_fmt(
      "{logger} {level_name}({level}) {caller}: {toupper(msg)} {{custom: {custom}}}"
    )
    lg$fatal("test", custom = "foobar")
    #> test fatal(100) eval: TEST {custom: foobar}
    lg$config(NULL)  # reset logger config
    #> <Logger> [info] test
    #> 
    #> inherited appenders:
    #>   console: <AppenderConsole> [all] -> console