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 |
Logger configuration.
Synopsis
- 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 Source #
data RotationParameters Source #
Parameters for logging rotation.
RotationParameters | |
|
Instances
fromScratch :: Monoid m => State m a -> m Source #
Useful lens combinator to be used for logging initialization.
Usually should be used with zoomLogger
.
isValidRotation :: RotationParameters -> Bool Source #
Checks if logger rotation parameters are valid.
Hierarchical tree of loggers (with lenses)
data HandlerWrap Source #
Wrapper over file handler with additional rounding option.
HandlerWrap | |
|
Instances
hwRounding :: Lens' HandlerWrap (Maybe Int) Source #
data LoggerTree Source #
Stores configuration for hierarchical loggers.
LoggerTree | |
|
Instances
ltFiles :: Lens' LoggerTree [HandlerWrap] Source #
Global logger configuration
data LoggerConfig Source #
Logger configuration which keeps RotationParameters
and LoggerTree
.
LoggerConfig | |
|
Instances
Semigroup LoggerConfig Source # | |
Defined in System.Wlog.LoggerConfig (<>) :: LoggerConfig -> LoggerConfig -> LoggerConfig # sconcat :: NonEmpty LoggerConfig -> LoggerConfig # stimes :: Integral b => b -> LoggerConfig -> LoggerConfig # | |
Monoid LoggerConfig Source # | |
Defined in System.Wlog.LoggerConfig mempty :: LoggerConfig # mappend :: LoggerConfig -> LoggerConfig -> LoggerConfig # mconcat :: [LoggerConfig] -> LoggerConfig # | |
ToJSON LoggerConfig Source # | This instances violates |
Defined in System.Wlog.LoggerConfig toJSON :: LoggerConfig -> Value # toEncoding :: LoggerConfig -> Encoding # toJSONList :: [LoggerConfig] -> Value # toEncodingList :: [LoggerConfig] -> Encoding # | |
FromJSON LoggerConfig Source # | |
Defined in System.Wlog.LoggerConfig parseJSON :: Value -> Parser LoggerConfig # parseJSONList :: Value -> Parser [LoggerConfig] # |
Lenses
lcConsoleAction :: Lens' LoggerConfig (Last (Handle -> Text -> IO ())) Source #
zoomLogger :: LoggerName -> State LoggerTree () -> State LoggerTree () Source #
Zooming into logger name with putting specific key.
atLogger :: LoggerName -> Traversal' LoggerConfig LoggerTree Source #
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 Source #
customConsoleActionB :: Maybe (Handle -> Text -> IO ()) -> LoggerConfig Source #
Setup lcConsoleOutput
inside LoggerConfig
.
mapperB :: (LoggerName -> LoggerName) -> LoggerConfig Source #
Setup lcMapper
inside LoggerConfig
.
maybeLogsDirB :: Maybe FilePath -> LoggerConfig Source #
Setup lcLogsDirectory
inside LoggerConfig
to optional prefix.
logsDirB :: FilePath -> LoggerConfig Source #
Setup lcLogsDirectory
inside LoggerConfig
to specific prefix.
productionB :: LoggerConfig Source #
Adds sensible predefined set of parameters to logger.
showTidB :: LoggerConfig Source #
Setup lcShowTid
to True
inside LoggerConfig
.
showTimeB :: LoggerConfig Source #
Setup lcShowTime
to True
inside LoggerConfig
.
termSeveritiesOutB :: Severities -> LoggerConfig Source #
Setup lcTermSeverityOut
to specified severity inside LoggerConfig
.
termSeveritiesErrB :: Severities -> LoggerConfig Source #
Setup lcTermSeverityErr
to specified severity inside LoggerConfig
.