| Copyright | (c) Serokell 2016 |
|---|---|
| License | GPL-3 (see the file LICENSE) |
| Maintainer | Serokell <hi@serokell.io> |
| Stability | experimental |
| Portability | POSIX, GHC |
| Safe Haskell | None |
| Language | Haskell2010 |
System.Wlog.LoggerConfig
Contents
Description
Logger configuration.
- type LoggerMap = HashMap LoggerName LoggerTree
- data RotationParameters = RotationParameters {
- rpLogLimit :: !Word64
- rpKeepFiles :: !Word
- fromScratch :: Monoid m => State m a -> m
- isValidRotation :: RotationParameters -> Bool
- data HandlerWrap = HandlerWrap {
- _hwFilePath :: !FilePath
- _hwRounding :: !(Maybe Int)
- hwFilePath :: Lens' HandlerWrap FilePath
- hwRounding :: Lens' HandlerWrap (Maybe Int)
- data LoggerTree = LoggerTree {
- _ltSubloggers :: !LoggerMap
- _ltFiles :: ![HandlerWrap]
- _ltSeverity :: !(Maybe Severities)
- ltFiles :: Lens' LoggerTree [HandlerWrap]
- ltSeverity :: Lens' LoggerTree (Maybe Severities)
- ltSubloggers :: Lens' LoggerTree LoggerMap
- data LoggerConfig = LoggerConfig {}
- lcConsoleAction :: Lens' LoggerConfig (Last (Handle -> Text -> IO ()))
- lcLogsDirectory :: Lens' LoggerConfig (Maybe FilePath)
- lcMapper :: Lens' LoggerConfig (Endo LoggerName)
- lcRotation :: Lens' LoggerConfig (Maybe RotationParameters)
- lcShowTime :: Lens' LoggerConfig Any
- lcShowTid :: Lens' LoggerConfig Any
- lcTermSeverityOut :: Lens' LoggerConfig (Maybe Severities)
- lcTermSeverityErr :: Lens' LoggerConfig (Maybe Severities)
- lcTree :: Lens' LoggerConfig LoggerTree
- zoomLogger :: LoggerName -> State LoggerTree () -> State LoggerTree ()
- atLogger :: LoggerName -> Traversal' LoggerConfig LoggerTree
- consoleActionB :: (Handle -> Text -> IO ()) -> LoggerConfig
- customConsoleActionB :: Maybe (Handle -> Text -> IO ()) -> LoggerConfig
- mapperB :: (LoggerName -> LoggerName) -> LoggerConfig
- maybeLogsDirB :: Maybe FilePath -> LoggerConfig
- logsDirB :: FilePath -> LoggerConfig
- productionB :: LoggerConfig
- showTidB :: LoggerConfig
- showTimeB :: LoggerConfig
- termSeveritiesOutB :: Severities -> LoggerConfig
- termSeveritiesErrB :: Severities -> LoggerConfig
Documentation
type LoggerMap = HashMap LoggerName LoggerTree #
data RotationParameters #
Parameters for logging rotation.
Constructors
| RotationParameters | |
Fields
| |
fromScratch :: Monoid m => State m a -> m #
Useful lens combinator to be used for logging initialization.
Usually should be used with zoomLogger.
isValidRotation :: RotationParameters -> Bool #
Checks if logger rotation parameters are valid.
Hierarchical tree of loggers (with lenses)
data HandlerWrap #
Wrapper over file handler with additional rounding option.
Constructors
| HandlerWrap | |
Fields
| |
Instances
hwRounding :: Lens' HandlerWrap (Maybe Int) #
data LoggerTree #
Stores configuration for hierarchical loggers.
Constructors
| LoggerTree | |
Fields
| |
Instances
ltFiles :: Lens' LoggerTree [HandlerWrap] #
Global logger configuration
data LoggerConfig #
Logger configuration which keeps RotationParameters and LoggerTree.
Constructors
| LoggerConfig | |
Fields
| |
Instances
| Semigroup LoggerConfig # | |
| Monoid LoggerConfig # | |
| ToJSON LoggerConfig # | This instances violates |
| FromJSON LoggerConfig # | |
Lenses
lcConsoleAction :: Lens' LoggerConfig (Last (Handle -> Text -> IO ())) #
lcMapper :: Lens' LoggerConfig (Endo LoggerName) #
zoomLogger :: LoggerName -> State LoggerTree () -> State LoggerTree () #
Zooming into logger name with putting specific key.
atLogger :: LoggerName -> Traversal' LoggerConfig LoggerTree #
Lens to help to change some particular logger properties.
For example if you want to use default configurations,
but need to change logger's severity to warningPlus
you can do it this way:
launchWithConfig( defaultConfig "myLogger" &atLogger"myLogger" .ltSeverity?~warningPlus) "myLogger" action
Builders for LoggerConfig
consoleActionB :: (Handle -> Text -> IO ()) -> LoggerConfig #
customConsoleActionB :: Maybe (Handle -> Text -> IO ()) -> LoggerConfig #
Setup lcConsoleOutput inside LoggerConfig.
mapperB :: (LoggerName -> LoggerName) -> LoggerConfig #
Setup lcMapper inside LoggerConfig.
maybeLogsDirB :: Maybe FilePath -> LoggerConfig #
Setup lcLogsDirectory inside LoggerConfig to optional prefix.
logsDirB :: FilePath -> LoggerConfig #
Setup lcLogsDirectory inside LoggerConfig to specific prefix.
Adds sensible predefined set of parameters to logger.
Setup lcShowTid to True inside LoggerConfig.
Setup lcShowTime to True inside LoggerConfig.
termSeveritiesOutB :: Severities -> LoggerConfig #
Setup lcTermSeverityOut to specified severity inside LoggerConfig.
termSeveritiesErrB :: Severities -> LoggerConfig #
Setup lcTermSeverityErr to specified severity inside LoggerConfig.