log-warper 0.4.5 → 0.5.0
raw patch · 4 files changed
+20/−16 lines, 4 files
Files
- log-warper.cabal +1/−1
- src/System/Wlog/Launcher.hs +1/−1
- src/System/Wlog/LoggerConfig.hs +14/−10
- test/Test/Wlog/RollingSpec.hs +4/−4
log-warper.cabal view
@@ -1,5 +1,5 @@ name: log-warper-version: 0.4.5+version: 0.5.0 synopsis: Flexible, configurable, monadic and pretty logging homepage: https://github.com/serokell/log-warper license: MIT
src/System/Wlog/Launcher.hs view
@@ -98,7 +98,7 @@ unless (parent == mempty && not consoleOutput) $ setSeverityMaybe parent _ltSeverity - whenJust _ltFile $ \fileName -> liftIO $ do+ forM_ _ltFiles $ \fileName -> liftIO $ do let filePriority = convertSeverity $ _ltSeverity ?: Debug let handlerPath = handlerPrefix </> fileName case handlerFabric of
src/System/Wlog/LoggerConfig.hs view
@@ -1,6 +1,8 @@-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TemplateHaskell #-} -- | -- Module : System.Wlog.LoggerConfig@@ -20,7 +22,7 @@ -- * Hierarchical tree of loggers (with lenses) , LoggerTree (..)- , ltFile+ , ltFiles , ltSeverity , ltSubloggers @@ -87,7 +89,7 @@ -- | Stores configuration for hierarchical loggers. data LoggerTree = LoggerTree { _ltSubloggers :: !LoggerMap- , _ltFile :: !(Maybe FilePath)+ , _ltFiles :: ![FilePath] , _ltSeverity :: !(Maybe Severity) } deriving (Generic, Show) @@ -96,24 +98,26 @@ -- TODO: QuickCheck tests on monoid laws instance Monoid LoggerTree where mempty = LoggerTree- { _ltFile = Nothing+ { _ltFiles = [] , _ltSeverity = Nothing , _ltSubloggers = mempty } lt1 `mappend` lt2 = LoggerTree- { _ltFile = _ltFile lt1 <|> _ltFile lt2+ { _ltFiles = _ltFiles lt1 <> _ltFiles lt2 , _ltSeverity = _ltSeverity lt1 <|> _ltSeverity lt2- , _ltSubloggers = _ltSubloggers lt1 <> _ltSubloggers lt2+ , _ltSubloggers = _ltSubloggers lt1 <> _ltSubloggers lt2 } nonLoggers :: [Text]-nonLoggers = ["file", "severity"]+nonLoggers = ["file", "files", "severity"] instance ToJSON LoggerTree instance FromJSON LoggerTree where parseJSON = withObject "loggers tree" $ \o -> do- _ltFile <- o .:? "file"+ (singleFile :: Maybe FilePath) <- o .:? "file"+ (manyFiles :: [FilePath]) <- o .:? "files" .!= []+ let _ltFiles = maybe [] (:[]) singleFile ++ manyFiles _ltSeverity <- o .:? "severity" _ltSubloggers <- for (filterObject nonLoggers o) parseJSON return LoggerTree{..}
test/Test/Wlog/RollingSpec.hs view
@@ -7,7 +7,7 @@ import Universum import Control.Concurrent.Async (mapConcurrently)-import Control.Lens (zoom, (?=))+import Control.Lens (zoom, (.=), (?=)) import qualified Prelude (read) import System.Directory (doesFileExist, removeFile) import System.FilePath (takeExtension)@@ -22,8 +22,8 @@ import System.Wlog (InvalidRotation (..), LoggerConfig (..), RotationParameters (..), Severity (..), fromScratch, isValidRotation, lcFilePrefix,- lcRotation, lcTree, logDebug, logIndex, ltFile,- ltSeverity, releaseAllHandlers,+ lcRotation, lcTree, logDebug, logIndex,+ ltFiles, ltSeverity, releaseAllHandlers, rotationFileHandler, setupLogging, usingLoggerName, whenExist, zoomLogger) @@ -73,7 +73,7 @@ zoom lcTree $ do ltSeverity ?= Debug zoomLogger "test" $- ltFile ?= testLogFile+ ltFiles .= [testLogFile] logThreadsNum :: Word logThreadsNum = 4