ServerLogger.Config (ServerLogger v0.3.0)

Copy Markdown View Source

Validates and retrieves ServerLogger configuration values.

All configuration is read from the :server_logger application key.

Required Configuration

config :server_logger, repo: MyApp.Repo

Optional Configuration

config :server_logger,
  enabled: true,
  buffer_flush_interval_ms: 1_000,
  buffer_max_size: 2_000,
  logging_enabled: nil,
  prune_interval_ms: 21_600_000,
  lifetime_days: [
    debug: 1,
    info: 7,
    warning: 30,
    error: 90,
    critical: 0
  ],
  memory_limits: [
    max_message_size_mb: 8
  ]

Summary

Functions

Returns the buffer flush interval in milliseconds.

Returns the max buffer size before a forced flush.

Returns whether ServerLogger is enabled.

Returns the lifetime_days config, with defaults.

Returns the logging_enabled setting. Valid values: nil (disabled, default), :stdio, :stderr.

Returns the max message size in bytes.

Returns the prune check interval in milliseconds.

Returns the configured Ecto Repo module. Raises if not configured.

Returns whether a given log level should be saved to the database. A level with nil lifetime means "never save".

Functions

buffer_flush_interval_ms()

Returns the buffer flush interval in milliseconds.

buffer_max_size()

Returns the max buffer size before a forced flush.

enabled?()

Returns whether ServerLogger is enabled.

lifetime_days()

Returns the lifetime_days config, with defaults.

logging_enabled()

Returns the logging_enabled setting. Valid values: nil (disabled, default), :stdio, :stderr.

max_message_size_bytes()

Returns the max message size in bytes.

prune_interval_ms()

Returns the prune check interval in milliseconds.

repo()

Returns the configured Ecto Repo module. Raises if not configured.

save_level?(level)

Returns whether a given log level should be saved to the database. A level with nil lifetime means "never save".

validate_lifetime_days(value)

Valid values:

  • nil — never save records of this level
  • 0 — save records and keep forever (never prune)
  • Positive number (integer or float, e.g., 7, 0.5, 1.75)

Invalid values:

  • Negative numbers
  • Non-numeric values