ExSyslog.JsonFormatter

JsonFormatter is formatter that produces a properly JSON object string where the level, message, node, and metadata are JSON object root properties.

JSON object:

{
    "level": "error",
    "message": "hello JSON formatter",
    "node": "foo@local",
    "module": "MyApp.MyModule",
    "function": "do_something/2",
    "line": 21
  }

JSON string:

{"level":"error","message":"hello JSON formatter","node":"foo@local","module":"MyApp.MyModule","function":"do_something/2","line":21}

Summary

compile(str)

Compiles a format string into an array that the format/6 can handle. It uses Logger.Formatter

format(format, level, msg, timestamp, metadata, config_metadata)

Takes a compiled format and injects the level, message, node and metadata and returns a properly formatted JSON object where level, message, node and metadata properties are root JSON properties. Message is formated with Logger.Formatter

Functions

compile(str)

Specs:

Compiles a format string into an array that the format/6 can handle. It uses Logger.Formatter.

format(format, level, msg, timestamp, metadata, config_metadata)

Specs:

Takes a compiled format and injects the level, message, node and metadata and returns a properly formatted JSON object where level, message, node and metadata properties are root JSON properties. Message is formated with Logger.Formatter.

config_metadata: is the metadata that is set on the configuration e.g. “metadata: [:module, :line, :function]“.