View Source LoggerJSON (logger_json v5.1.4)

JSON console back-end for Elixir Logger.

It can be used as drop-in replacement for default :console Logger back-end in cases where you use use Google Cloud Logger or other JSON-based log collectors.

Log Format

LoggerJSON provides three JSON formatters out of the box.

You can change this structure by implementing LoggerJSON.Formatter behaviour and passing module name to :formatter config option. Example implementations can be found in LoggerJSON.Formatters.GoogleCloudLogger, LoggerJSON.Formatters.DatadogLogger, and LoggerJSON.Formatters.BasicLogger.

config :logger_json, :backend,
  formatter: MyFormatterImplementation

If your formatter supports different options, you can specify them with :formatter_opts.

config :logger_json, :backend,
  formatter: LoggerJSON.Formatters.DatadogLogger,
  formatter_opts: %{hostname: "example.com"}

Encoders support

You can replace default Jason encoder with other module that supports encode!/1 function. This can be even used as custom formatter callback.

Popular Jason alternatives:

Dynamic configuration

For dynamically configuring the endpoint, such as loading data from environment variables or configuration files, LoggerJSON provides an :on_init option that allows developers to set a module, function and list of arguments that is invoked when the endpoint starts. If you would like to disable the :on_init callback function dynamically, you can pass in :disabled and no callback function will be called.

config :logger_json, :backend,
  on_init: {YourApp.Logger, :load_from_system_env, []}

Summary

Functions

Changes Logger log level at runtime.

Configures Logger log level at runtime by using value from environment variable.

Callback implementation for :gen_event.handle_call/2.

Callback implementation for :gen_event.handle_info/2.

Callback implementation for :gen_event.init/1.

Callback implementation for :gen_event.terminate/2.

Functions

Link to this function

code_change(old_vsn, state, extra)

View Source

Callback implementation for :gen_event.code_change/3.

Link to this function

configure_log_level!(level)

View Source

Changes Logger log level at runtime.

Notice that settings this value below compile_time_purge_level would not work, because Logger calls would be already stripped at compile-time.

Link to this function

configure_log_level_from_env!(env_name \\ "LOG_LEVEL")

View Source

Configures Logger log level at runtime by using value from environment variable.

By default, 'LOG_LEVEL' environment variable is used.

Callback implementation for :gen_event.handle_call/2.

Link to this function

handle_event(arg1, state)

View Source

Callback implementation for :gen_event.handle_event/2.

Link to this function

handle_info(arg1, state)

View Source

Callback implementation for :gen_event.handle_info/2.

Callback implementation for :gen_event.init/1.

Link to this function

take_metadata(metadata, keys_or_all, ignored_keys \\ [])

View Source
Link to this function

terminate(reason, state)

View Source

Callback implementation for :gen_event.terminate/2.