packages feed

log-warper 1.7.5 → 1.7.6

raw patch · 6 files changed

+42/−28 lines, 6 files

Files

CHANGES.md view
@@ -1,3 +1,8 @@+1.7.6+=====++* Upgrade `universum` to version `0.9.1`. Add `Semigroup` instances.+ 1.7.5 ===== 
examples/HowTo.lhs view
@@ -57,16 +57,16 @@ There are two ways of configuring the logger you creating. One option is to configure everything directly in the code, which will make the process of writing code less convenient. Here we will use another configuration possibility-— we will write configurations in special `.yaml` file.+-- we will write configurations in special `.yaml` file. In our example we will use very simple one with the minimal settings needed for the file to work. You can have a look at [`how-to-log-config.yaml`](https://github.com/serokell/log-warper/blob/master/examples/how-to-log-config.yaml), it contains the following lines:  ```yaml loggerTree:-    severity: Warning+    # severities for «root» logger-    new-logger:           # logger named «new-logger»-        severity: Debug+  # severities for logger «new-logger»+    severity: Warning+    # severities for "root" logger+    new-logger:           # logger named "new-logger"+        severity: Debug+  # severities for logger "new-logger" ``` You don't need to worry about root logger for now. This part is explained in section devoted to hierarchical logging. 
examples/HowTo.md view
@@ -57,16 +57,16 @@ There are two ways of configuring the logger you creating. One option is to configure everything directly in the code, which will make the process of writing code less convenient. Here we will use another configuration possibility-— we will write configurations in special `.yaml` file.+-- we will write configurations in special `.yaml` file. In our example we will use very simple one with the minimal settings needed for the file to work. You can have a look at [`how-to-log-config.yaml`](https://github.com/serokell/log-warper/blob/master/examples/how-to-log-config.yaml), it contains the following lines:  ```yaml loggerTree:-    severity: Warning+    # severities for «root» logger-    new-logger:           # logger named «new-logger»-        severity: Debug+  # severities for logger «new-logger»+    severity: Warning+    # severities for "root" logger+    new-logger:           # logger named "new-logger"+        severity: Debug+  # severities for logger "new-logger" ``` You don't need to worry about root logger for now. This part is explained in section devoted to hierarchical logging. 
examples/Playground.hs view
@@ -4,7 +4,6 @@  import Universum -import Data.Monoid ((<>)) import Data.Yaml.Pretty (defConfig, encodePretty)  import System.Wlog (CanLog, defaultConfig, launchFromFile, launchSimpleLogging, logDebug, logError,
log-warper.cabal view
@@ -1,5 +1,5 @@ name:                log-warper-version:             1.7.5+version:             1.7.6 synopsis:            Flexible, configurable, monadic and pretty logging homepage:            https://github.com/serokell/log-warper license:             MIT
src/System/Wlog/LoggerConfig.hs view
@@ -129,6 +129,16 @@  makeLenses ''LoggerTree +instance Semigroup LoggerTree where+    lt1 <> lt2 = LoggerTree+        { _ltFiles      = andCombiner _ltFiles+        , _ltSeverity   = orCombiner  _ltSeverity+        , _ltSubloggers = andCombiner _ltSubloggers+        }+      where+        orCombiner  field = field lt1 <|> field lt2+        andCombiner field = field lt1  <> field lt2+ -- TODO: QuickCheck tests on monoid laws instance Monoid LoggerTree where     mempty = LoggerTree@@ -137,11 +147,7 @@         , _ltSubloggers = mempty         } -    lt1 `mappend` lt2 = LoggerTree-        { _ltFiles      = _ltFiles      lt1 <>  _ltFiles      lt2-        , _ltSeverity   = _ltSeverity   lt1 <|> _ltSeverity   lt2-        , _ltSubloggers = _ltSubloggers lt1 <>  _ltSubloggers lt2-        }+    mappend = (<>)  instance ToJSON HandlerWrap instance FromJSON HandlerWrap where@@ -241,6 +247,22 @@  makeLenses ''LoggerConfig +instance Semigroup LoggerConfig where+    lc1 <> lc2 = LoggerConfig+        { _lcRotation        = orCombiner  _lcRotation+        , _lcTermSeverityOut = orCombiner  _lcTermSeverityOut+        , _lcTermSeverityErr = orCombiner  _lcTermSeverityErr+        , _lcShowTime        = andCombiner _lcShowTime+        , _lcShowTid         = andCombiner _lcShowTid+        , _lcConsoleAction   = andCombiner _lcConsoleAction+        , _lcMapper          = andCombiner _lcMapper+        , _lcTree            = andCombiner _lcTree+        }+      where+        orCombiner  field = field lc1 <|> field lc2+        andCombiner field = field lc1  <> field lc2++ -- TODO: QuickCheck tests on monoid laws instance Monoid LoggerConfig where     mempty = LoggerConfig@@ -254,19 +276,7 @@         , _lcTree            = mempty         } -    lc1 `mappend` lc2 = LoggerConfig-        { _lcRotation        = orCombiner  _lcRotation-        , _lcTermSeverityOut = orCombiner  _lcTermSeverityOut-        , _lcTermSeverityErr = orCombiner  _lcTermSeverityErr-        , _lcShowTime        = andCombiner _lcShowTime-        , _lcShowTid         = andCombiner _lcShowTid-        , _lcConsoleAction   = andCombiner _lcConsoleAction-        , _lcMapper          = andCombiner _lcMapper-        , _lcTree            = andCombiner _lcTree-        }-      where-        orCombiner  field = field lc1 <|> field lc2-        andCombiner field = field lc1  <> field lc2+    mappend = (<>)  instance FromJSON LoggerConfig where     parseJSON = withObject "rotation params" $ \o -> do