tinylog-0.12.1: Simplistic logging using fast-logger.

Safe HaskellNone
LanguageHaskell2010

System.Logger

Contents

Description

Small layer on top of fast-logger which adds log-levels and timestamp support and not much more.

Synopsis

Settings

logLevelOf :: Text -> Settings -> Maybe Level Source

Log level of some named logger.

setLogLevelOf :: Text -> Level -> Settings -> Settings Source

Specify a log level for the given named logger. When a logger is cloned and given a name, the logLevel of the cloned logger will be the provided here.

format :: Settings -> DateFormat Source

The time and date format used for the timestamp part of a log line.

delimiter :: Settings -> ByteString Source

Delimiter string which separates log line parts.

netstrings :: Settings -> Bool Source

Whether to use netstring encoding for log lines.

Type definitions

data Level Source

Constructors

Trace 
Debug 
Info 
Warn 
Error 
Fatal 

data Output Source

Constructors

StdOut 
StdErr 
Path FilePath 

Instances

iso8601UTC :: DateFormat Source

ISO 8601 date-time format.

Core API

new :: MonadIO m => Settings -> m Logger Source

Create a new Logger with the given Settings. Please note that the logLevel can be dynamically adjusted by setting the environment variable LOG_LEVEL accordingly. Likewise the buffer size can be dynamically set via LOG_BUFFER and netstrings encoding can be enabled with LOG_NETSTR=True

Since version 0.11 one can also use LOG_LEVEL_MAP to specify log levels per (named) logger. The syntax uses standard haskell syntax for association lists of type [(Text, Level)]. For example:

$ LOG_LEVEL=Info LOG_LEVEL_MAP='[("foo", Warn), ("bar", Trace)]' cabal repl
> g1 <- new defSettings
> let g2 = clone (Just "foo") g
> let g3 = clone (Just "bar") g
> let g4 = clone (Just "xxx") g
> logLevel (settings g1)
Info
> logLevel (settings g2)
Warn
> logLevel (settings g3)
Trace
> logLevel (settings g4)
Info

create :: MonadIO m => Output -> m Logger Source

Invokes new with default settings and the given output as log sink.

level :: Logger -> Level Source

Inspect this logger's threshold.

flush :: MonadIO m => Logger -> m () Source

Force buffered bytes to output sink.

close :: MonadIO m => Logger -> m () Source

Closes the logger.

clone :: Maybe Text -> Logger -> Logger Source

Clone the given logger and optionally give it a name (use Nothing to clear).

If logLevelOf returns a custom Level for this name then the cloned logger will use it for its log messages.

Logging

log :: MonadIO m => Logger -> Level -> (Msg -> Msg) -> m () Source

Logs a message with the given level if greater or equal to the logger's threshold.

trace :: MonadIO m => Logger -> (Msg -> Msg) -> m () Source

Abbreviation of log using the corresponding log level.

debug :: MonadIO m => Logger -> (Msg -> Msg) -> m () Source

Abbreviation of log using the corresponding log level.

info :: MonadIO m => Logger -> (Msg -> Msg) -> m () Source

Abbreviation of log using the corresponding log level.

warn :: MonadIO m => Logger -> (Msg -> Msg) -> m () Source

Abbreviation of log using the corresponding log level.

err :: MonadIO m => Logger -> (Msg -> Msg) -> m () Source

Abbreviation of log using the corresponding log level.

fatal :: MonadIO m => Logger -> (Msg -> Msg) -> m () Source

Abbreviation of log using the corresponding log level.