Safe Haskell | None |
---|
Definition of log formatter support
A few basic, and extendable formatters are defined.
Please see System.Log.Logger for extensive documentation on the logging system.
- type LogFormatter a = a -> LogRecord -> String -> IO String
- nullFormatter :: LogFormatter a
- simpleLogFormatter :: String -> LogFormatter a
- tfLogFormatter :: String -> String -> LogFormatter a
- varFormatter :: [(String, IO String)] -> String -> LogFormatter a
Documentation
type LogFormatter aSource
= a | The LogHandler that the passed message came from |
-> LogRecord | The log message and priority |
-> String | The logger name |
-> IO String | The formatted log message |
A LogFormatter is used to format log messages. Note that it is paramterized on the
Handler
to allow the formatter to use information specific to the handler
(an example of can be seen in the formatter used in Syslog
)
nullFormatter :: LogFormatter aSource
Returns the passed message as is, ie. no formatting is done.
simpleLogFormatter :: String -> LogFormatter aSource
Takes a format string, and returns a formatter that may be used to format log messages. The format string may contain variables prefixed with a $-sign which will be replaced at runtime with corresponding values. The currently supported variables are:
-
$msg
- The actual log message -
$loggername
- The name of the logger -
$prio
- The priority level of the message -
$tid
- The thread ID -
$pid
- Process ID (Not available on windows) -
$time
- The current time -
$utcTime
- The current time in UTC Time
tfLogFormatter :: String -> String -> LogFormatter aSource
Like simpleLogFormatter
but allow the time format to be specified in the first
parameter (this is passed to formatTime
)
varFormatter :: [(String, IO String)] -> String -> LogFormatter aSource
An extensible formatter that allows new substition variables to be defined.
Each variable has an associated IO action that is used to produce the
string to substitute for the variable name. The predefined variables are the same
as for simpleLogFormatter
excluding $time
and $utcTime
.