log-warper-0.3.1: Flexible, configurable, monadic and pretty logging

Copyright(c) Serokell 2016
LicenseGPL-3 (see the file LICENSE)
MaintainerSerokell <hi@serokell.io>
Stabilityexperimental
PortabilityPOSIX, GHC
Safe HaskellNone
LanguageHaskell2010

System.Wlog.Launcher

Description

Parser for configuring and initializing logger from YAML file. Logger configuration should look like this:

rotation:                # [optional] parameters for logging rotation
    logLimit: 1024       # max size of log file in bytes
    keepFiles: 3         # number of files with logs to keep including current one
node:                    # logger named «node»
    severity: Warning    # severity for logger «node»
    comm:                # logger named «node.comm»
        severity: Info   # severity for logger «node.comm»
        file: patak.jpg  # messages will be also printed to patak.jpg

And this configuration corresponds two loggers with LoggerName's node and node.comm.

Synopsis

Documentation

initLoggingFromYamlWithMapper :: MonadIO m => (LoggerName -> LoggerName) -> FilePath -> Maybe FilePath -> m () Source #

Initialize logger hierarchy from configuration file. See this module description.

parseLoggerConfig :: MonadIO m => FilePath -> m LoggerConfig Source #

Parses logger config from given file path.

traverseLoggerConfig Source #

Arguments

:: MonadIO m 
=> (LoggerName -> LoggerName)

mapper to transform logger names during traversal

-> Maybe RotationParameters

rotation parameters for roller handle

-> LoggerTree

given LoggerConfig to traverse

-> Maybe FilePath

prefix for file handlers

-> m () 

This function traverses LoggerConfig initializing all subloggers with Severity and redirecting output in file handlers. Also takes FilePath prefix to create directory for file handlers output. Create logging rotation if appropriate arguments are passed.