Definitively.Log (definitively v0.2.0)

Copy Markdown

Structured logging for the definitively.

Level is controlled by DEFINITIVELY_LOG_LEVEL (default INFO): TRACE, DEBUG, INFO, WARN, ERROR.

Built on OTP Logger; TRACE is emitted at debug priority with [trace] metadata.

Summary

Functions

Configures Logger and application log threshold from DEFINITIVELY_LOG_LEVEL.

Logs at debug level when enabled.

Logs at error level when enabled.

Logs at info level when enabled.

Builds metadata keyword list, dropping nil values.

Metadata from a run context.

Logs at trace level when enabled.

Logs at warn level when enabled.

Types

level()

@type level() :: :trace | :debug | :info | :warn | :error

Functions

configure!()

@spec configure!() :: :ok

Configures Logger and application log threshold from DEFINITIVELY_LOG_LEVEL.

debug(message, metadata \\ [])

@spec debug(
  String.t(),
  keyword()
) :: :ok

Logs at debug level when enabled.

error(message, metadata \\ [])

@spec error(
  String.t(),
  keyword()
) :: :ok

Logs at error level when enabled.

info(message, metadata \\ [])

@spec info(
  String.t(),
  keyword()
) :: :ok

Logs at info level when enabled.

metadata(opts)

@spec metadata(keyword()) :: keyword()

Builds metadata keyword list, dropping nil values.

run_metadata(ctx)

@spec run_metadata(Definitively.Workflow.RunContext.t()) :: keyword()

Metadata from a run context.

trace(message, metadata \\ [])

@spec trace(
  String.t(),
  keyword()
) :: :ok

Logs at trace level when enabled.

warn(message, metadata \\ [])

@spec warn(
  String.t(),
  keyword()
) :: :ok

Logs at warn level when enabled.