snap-server-1.0.1.0: A web server for the Snap Framework

Safe HaskellNone
LanguageHaskell2010

System.FastLogger

Synopsis

Documentation

data Logger Source #

Holds the state for a logger.

timestampedLogEntry :: ByteString -> IO ByteString Source #

Prepares a log message with the time prepended.

combinedLogEntry Source #

Arguments

:: ByteString

remote host

-> Maybe ByteString

remote user

-> ByteString

request line (up to you to ensure there are no quotes in here)

-> Int

status code

-> Word64

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.

newLogger Source #

Arguments

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

newLoggerWithCustomErrorFunction Source #

Arguments

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

withLogger Source #

Arguments

:: FilePath

log file to use

-> (Logger -> IO a) 
-> IO a 

Creates a Logger and passes it into the given function, cleaning up with "stopLogger" afterwards.

withLoggerWithCustomErrorFunction Source #

Arguments

:: (ByteString -> IO ())

logger uses this action to log any error messages of its own

-> FilePath

log file to use

-> (Logger -> IO a) 
-> IO a 

Creates a Logger with "newLoggerWithCustomErrorFunction" and passes it into the given function, cleaning up with "stopLogger" afterwards.

stopLogger :: Logger -> IO () Source #

Kills a logger thread, causing any unwritten contents to be flushed out to disk

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).