-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Parsing hslogger-produced logs.
--
-- hslogger-reader provides a function to generate a parser for
-- hslogger-produced logs from a hslogger format string (see
-- System.Log.Formatter). The accompanying executable demonstrates
-- parsing and computing with a log file in constant memory.
@package hslogger-reader
@version 1.0.2
-- | Generate a parser for logs produced by the hslogger package,
-- supporting arbitrary formatting strings (see
-- System.Log.Formatter). Currently, this package does not provide
-- support for custom-defined formatters.
--
-- logMessageParser will generate a parser for a LogMessage
-- given a format string (such "[$utcTime $loggername $prio] $msg"
-- ) and a parser for your logger names. This can then be used to
-- read logs line-by-line, potentially in constant memory, from disk. See
-- the accompanying executable for an example of this.
module System.Log.Reader
data LogMessage
LogMessage :: Maybe Text -> Maybe Text -> Maybe Priority -> Maybe Int -> Maybe Int -> Maybe ZonedTime -> LogMessage
[message] :: LogMessage -> Maybe Text
[loggerName] :: LogMessage -> Maybe Text
[priority] :: LogMessage -> Maybe Priority
[threadId] :: LogMessage -> Maybe Int
[processId] :: LogMessage -> Maybe Int
[timestamp] :: LogMessage -> Maybe ZonedTime
type FormatString = Text
-- | Build a parser for a LogMessage from a format string, as
-- described by the hslogger package.
logMessageParser :: FormatString -> Parser Text -> Either String (Parser LogMessage)
-- | As logMessageParser, but provide a custom time format for
-- parsing "$time" and "$utcTime" formatters.
-- Compatible with hslogger's tfLogFormatter function.
tfLogMessageParser :: FormatString -> Parser Text -> Parser ZonedTime -> Either String (Parser LogMessage)
-- | Parse time format string "%F %X %Z" with
-- defaultTimeLocale.
zonedTimeParser :: Parser ZonedTime
instance GHC.Show.Show System.Log.Reader.Instruction
instance GHC.Show.Show System.Log.Reader.LogMessage