- data Logger
- timestampedLogEntry :: ByteString -> IO ByteString
- combinedLogEntry :: ByteString -> Maybe ByteString -> ByteString -> Int -> Maybe Int64 -> Maybe ByteString -> ByteString -> IO ByteString
- newLogger :: FilePath -> IO Logger
- newLoggerWithCustomErrorFunction :: (ByteString -> IO ()) -> FilePath -> IO Logger
- logMsg :: Logger -> ByteString -> IO ()
- stopLogger :: Logger -> IO ()
Documentation
timestampedLogEntry :: ByteString -> IO ByteStringSource
Prepares a log message with the time prepended.
:: ByteString | remote host |
-> Maybe ByteString | remote user |
-> ByteString | request line (up to you to ensure there are no quotes in here) |
-> Int | status code |
-> Maybe Int64 | num bytes sent |
-> Maybe ByteString | referer (up to you to ensure there are no quotes in here) |
-> ByteString | user agent (up to you to ensure there are no quotes in here) |
-> IO ByteString |
Prepares a log message in "combined" format.
Creates a new logger, logging to the given file. If the file argument is "-", then log to stdout; if it's "stderr" then we log to stderr, otherwise we log to a regular file in append mode. The file is closed and re-opened every 15 minutes to facilitate external log rotation.
newLoggerWithCustomErrorFunctionSource
:: (ByteString -> IO ()) | logger uses this action to log any error messages of its own |
-> FilePath | log file to use |
-> IO Logger |
Like newLogger
, but uses a custom error action if the logger needs to
print an error message of its own (for instance, if it can't open the
output file.)
logMsg :: Logger -> ByteString -> IO ()Source
Sends out a log message verbatim with a newline appended. Note:
if you want a fancy log message you'll have to format it yourself
(or use combinedLogEntry
).
stopLogger :: Logger -> IO ()Source
Kills a logger thread, causing any unwritten contents to be flushed out to disk