snap-server- A fast, iteratee-based, epoll-enabled web server for the Snap Framework

Safe HaskellNone




data Logger Source

Holds the state for a logger.

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.



:: FilePath

log file to use

-> IO Logger 

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.



:: (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