Blammo-2.1.1.0: Batteries-included Structured Logging library
Safe HaskellSafe-Inferred
LanguageHaskell2010

Blammo.Logging.LogSettings.Env

Description

Produce a LogSettings by reading environment variables

  • LOG_LEVEL: a known log level (case insensitive) and optional levels by source. See Logging.LogSettings.LogLevels.
  • LOG_DESTINATION: the string stderr, stdout or null, (case sensitive), or @{path} to log to the file at path. Unrecognized values will produce an error.
  • LOG_FORMAT: the string tty or json. Unrecognized values will produce an error.
  • LOG_COLOR: the string auto, always, or never. Other values may be recognized (e.g. yes or no) but should not be relied on. Unrecognized values will produce an error
  • LOG_BREAKPOINT: a number representing the column-width at which to break into multi-line format.
  • LOG_CONCURRENCY: number of log buffers to use. More will perform faster but result in out-of-order delivery. This is automatically disabled for LOG_FORMAT=tty and set to number-of-cores for LOG_FORMAT=json.
  • NO_COLOR: if present and non-empty, behave as if LOG_COLOR=never
  • TERM: if present and the value dumb, behave as if LOG_COLOR=never.

This module is meant to be imported qualified.

import Blammo.Logging
import qualified Logging.LogSettings.Env as Env

main :: IO ()
main = do
  logger <- newLogger =<< Env.parse
  runLoggerLoggingT logger $ -- ...
Synopsis

Documentation

Specifying defaults other than defaultLogSettings

For example, if you want logging to go to stderr by default, but still support LOG_DESTINATION,

settings <- Env.parseWith
  $ setLogSettingsDestination LogDestinationStderr defaultLogSettings