Safe Haskell | None |
---|---|
Language | Haskell2010 |
The MonadLogger
type-class and associated functions.
- data Settings
- defSettings :: Settings
- logLevel :: Settings -> Level
- setLogLevel :: Level -> Settings -> Settings
- output :: Settings -> Output
- setOutput :: Output -> Settings -> Settings
- format :: Settings -> DateFormat
- setFormat :: DateFormat -> Settings -> Settings
- delimiter :: Settings -> ByteString
- setDelimiter :: ByteString -> Settings -> Settings
- netstrings :: Settings -> Bool
- setNetStrings :: Bool -> Settings -> Settings
- bufSize :: Settings -> Int
- setBufSize :: Int -> Settings -> Settings
- name :: Settings -> Maybe Text
- setName :: Maybe Text -> Settings -> Settings
- data Level
- data Output
- data DateFormat
- iso8601UTC :: DateFormat
- data Logger
- new :: MonadIO m => Settings -> m Logger
- create :: MonadIO m => Output -> m Logger
- level :: Logger -> Level
- flush :: MonadIO m => Logger -> m ()
- close :: MonadIO m => Logger -> m ()
- clone :: Maybe Text -> Logger -> Logger
- settings :: Logger -> Settings
- class Monad m => MonadLogger m where
- trace :: MonadLogger m => (Msg -> Msg) -> m ()
- debug :: MonadLogger m => (Msg -> Msg) -> m ()
- info :: MonadLogger m => (Msg -> Msg) -> m ()
- warn :: MonadLogger m => (Msg -> Msg) -> m ()
- err :: MonadLogger m => (Msg -> Msg) -> m ()
- fatal :: MonadLogger m => (Msg -> Msg) -> m ()
Documentation
defSettings :: Settings Source
Default settings:
logLevel
=Debug
output
=StdOut
format
=iso8601UTC
delimiter
= ", "netstrings
= FalsebufSize
=defaultBufSize
name
= Nothing
setLogLevel :: Level -> Settings -> Settings Source
format :: Settings -> DateFormat Source
The time and date format used for the timestamp part of a log line.
setFormat :: DateFormat -> Settings -> Settings Source
delimiter :: Settings -> ByteString Source
Delimiter string which separates log line parts.
setDelimiter :: ByteString -> Settings -> Settings Source
netstrings :: Settings -> Bool Source
Whether to use netstring encoding for log lines.
setNetStrings :: Bool -> Settings -> Settings Source
setBufSize :: Int -> Settings -> Settings Source
iso8601UTC :: DateFormat Source
ISO 8601 date-time format.
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.
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.
trace :: MonadLogger m => (Msg -> Msg) -> m () Source
Abbreviation for log
using the corresponding log level.
debug :: MonadLogger m => (Msg -> Msg) -> m () Source
Abbreviation for log
using the corresponding log level.
info :: MonadLogger m => (Msg -> Msg) -> m () Source
Abbreviation for log
using the corresponding log level.
warn :: MonadLogger m => (Msg -> Msg) -> m () Source
Abbreviation for log
using the corresponding log level.