Safe Haskell | None |
---|
This module provides a fast logging system which scales on multicore environments (i.e. +RTS -N<x>).
- data LoggerSet
- newFileLoggerSet :: BufSize -> FilePath -> IO LoggerSet
- newStdoutLoggerSet :: BufSize -> IO LoggerSet
- newStderrLoggerSet :: BufSize -> IO LoggerSet
- newLoggerSet :: BufSize -> Maybe FilePath -> IO LoggerSet
- type BufSize = Int
- defaultBufSize :: BufSize
- renewLoggerSet :: LoggerSet -> IO ()
- rmLoggerSet :: LoggerSet -> IO ()
- data LogStr
- class ToLogStr msg where
- fromLogStr :: LogStr -> ByteString
- logStrLength :: LogStr -> Int
- pushLogStr :: LoggerSet -> LogStr -> IO ()
- flushLogStr :: LoggerSet -> IO ()
- module System.Log.FastLogger.File
Creating a logger set
A set of loggers. The number of loggers is the capabilities of GHC RTS. You can specify it with "+RTS -N<x>". A buffer is prepared for each capability.
Buffer size
defaultBufSize :: BufSizeSource
The default buffer size (4,096 bytes).
Renewing and removing a logger set
renewLoggerSet :: LoggerSet -> IO ()Source
Renewing the internal file information in LoggerSet
.
This does nothing for stdout and stderr.
rmLoggerSet :: LoggerSet -> IO ()Source
Flushing the buffers, closing the internal file information and freeing the buffers.
Log messages
Log message builder. Use (<>
) to append two LogStr in O(1).
fromLogStr :: LogStr -> ByteStringSource
Converting LogStr
to ByteString
.
logStrLength :: LogStr -> IntSource
Obtaining the length of LogStr
.
Writing a log message
pushLogStr :: LoggerSet -> LogStr -> IO ()Source
Writing a log message to the corresponding buffer. If the buffer becomes full, the log messages in the buffer are written to its corresponding file, stdout, or stderr.
Flushing buffered log messages
flushLogStr :: LoggerSet -> IO ()Source
Flushing log messages in buffers. This function must be called explicitly when the program is being terminated.
Note: Since version 2.1.6, this function does not need to be explicitly called, as every push includes an auto-debounced flush courtesy of the auto-update package.
File rotation
module System.Log.FastLogger.File