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

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




Pretty looking formatters for logger.

Please see System.WLog.Logger for extensive documentation on the logging system.



centiUtcTimeF :: UTCTime -> Text Source #

Formats UTC time in next format: "%Y-%m-%d %H:%M:%S%Q %Z" but %Q part show only in centiseconds (always 2 digits).

getRoundedTime :: Int -> IO UTCTime Source #

Get the current time rounded to 10^n picoseconds. n = 3 rounds to the nearest nanosecond. n = 6 rounds to the nearest microsecond. n = 9 will round to the nearest millisecond. n = 12 will round to the nearest second.

Taken from hslogger.

type LogFormatter a Source #


 = a

The LogHandler that the passed message came from

-> LogRecord

The log message and priority

-> Text

The logger name

-> IO Builder

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 a Source #

Returns the passed message as is, ie. no formatting is done.

simpleLogFormatter :: Text -> LogFormatter a Source #

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 :: Text -> Text -> LogFormatter a Source #

Like simpleLogFormatter but allow the time format to be specified in the first parameter (this is passed to formatTime)

varFormatter :: [(Text, Text)] -> Text -> LogFormatter a Source #

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.