Skip to contents

Log a message with given log level

Usage

log_level(
  level,
  ...,
  namespace = NA_character_,
  .logcall = sys.call(),
  .topcall = sys.call(-1),
  .topenv = parent.frame()
)

log_fatal(
  ...,
  namespace = NA_character_,
  .logcall = sys.call(),
  .topcall = sys.call(-1),
  .topenv = parent.frame()
)

log_error(
  ...,
  namespace = NA_character_,
  .logcall = sys.call(),
  .topcall = sys.call(-1),
  .topenv = parent.frame()
)

log_warn(
  ...,
  namespace = NA_character_,
  .logcall = sys.call(),
  .topcall = sys.call(-1),
  .topenv = parent.frame()
)

log_success(
  ...,
  namespace = NA_character_,
  .logcall = sys.call(),
  .topcall = sys.call(-1),
  .topenv = parent.frame()
)

log_info(
  ...,
  namespace = NA_character_,
  .logcall = sys.call(),
  .topcall = sys.call(-1),
  .topenv = parent.frame()
)

log_debug(
  ...,
  namespace = NA_character_,
  .logcall = sys.call(),
  .topcall = sys.call(-1),
  .topenv = parent.frame()
)

log_trace(
  ...,
  namespace = NA_character_,
  .logcall = sys.call(),
  .topcall = sys.call(-1),
  .topenv = parent.frame()
)

Arguments

level

log level, see log_levels() for more details

...

R objects that can be converted to a character vector via the active message formatter function

namespace

string referring to the logger environment / config to be used to override the target of the message record to be used instead of the default namespace, which is defined by the R package name from which the logger was called, and falls back to a common, global namespace.

.logcall

the logging call being evaluated (useful in formatters and layouts when you want to have access to the raw, unevaluated R expression)

.topcall

R expression from which the logging function was called (useful in formatters and layouts to extract the calling function's name or arguments)

.topenv

original frame of the .topcall calling function where the formatter function will be evaluated and that is used to look up the namespace as well via logger:::top_env_name

Value

Invisible list of logger objects. See logger() for more details on the format.

Examples

log_level(INFO, "hi there")
#> INFO [2024-10-21 07:31:20] hi there
log_info("hi there")
#> INFO [2024-10-21 07:31:20] hi there

## output omitted
log_debug("hi there")

## lower threshold and retry
log_threshold(TRACE)
log_debug("hi there")
#> DEBUG [2024-10-21 07:31:20] hi there

## multiple lines
log_info("ok {1:3} + {1:3} = {2*(1:3)}")
#> INFO [2024-10-21 07:31:20] ok 1 + 1 = 2
#> INFO [2024-10-21 07:31:20] ok 2 + 2 = 4
#> INFO [2024-10-21 07:31:20] ok 3 + 3 = 6

## use json layout
log_layout(layout_json(c("time", "level")))
log_info("ok {1:3} + {1:3} = {2*(1:3)}")
#> {"time":"2024-10-21 07:31:20","level":"INFO","msg":"ok 1 + 1 = 2"}
#> {"time":"2024-10-21 07:31:20","level":"INFO","msg":"ok 2 + 2 = 4"}
#> {"time":"2024-10-21 07:31:20","level":"INFO","msg":"ok 3 + 3 = 6"}