Safe Haskell | None |
---|
System.Log.FastLogger
Contents
Description
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.
newFileLoggerSet :: BufSize -> FilePath -> IO LoggerSetSource
Creating a new LoggerSet
using a file.
newStdoutLoggerSet :: BufSize -> IO LoggerSetSource
Creating a new LoggerSet
using stdout.
newStderrLoggerSet :: BufSize -> IO LoggerSetSource
Creating a new LoggerSet
using stderr.
newLoggerSet :: BufSize -> Maybe FilePath -> IO LoggerSetSource
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. Since version 2.2.2, this function can be used to force flushing outside of the debounced flush calls.
File rotation
module System.Log.FastLogger.File