packages feed

log-base 0.9.0.0 → 0.9.1.0

raw patch · 3 files changed

+49/−2 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Log.Backend.LogList: clearLogList :: LogList -> IO ()
+ Log.Backend.LogList: data LogList
+ Log.Backend.LogList: getLogList :: LogList -> IO [LogMessage]
+ Log.Backend.LogList: instance GHC.Classes.Eq Log.Backend.LogList.LogList
+ Log.Backend.LogList: newLogList :: IO LogList
+ Log.Backend.LogList: putLogList :: LogList -> LogMessage -> IO ()
+ Log.Backend.LogList: withLogListLogger :: LogList -> (Logger -> IO r) -> IO r

Files

CHANGELOG.md view
@@ -1,3 +1,6 @@+# log-base-0.9.1.0 (2021-03-01)+* Add a `LogList` logger+ # log-base-0.9.0.0 (2020-09-07) * Always make data attached to a log message a json object * Add unliftio-core-0.2 compatiblity
log-base.cabal view
@@ -1,5 +1,5 @@ name:                log-base-version:             0.9.0.0+version:             0.9.1.0 synopsis:            Structured logging solution (base package)  description:         A library that provides a way to record structured log@@ -21,7 +21,7 @@ build-type:          Simple cabal-version:       >=1.10 extra-source-files:  CHANGELOG.md, README.md-tested-with:         GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.2+tested-with:         GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.4  Source-repository head   Type:     git@@ -29,6 +29,7 @@  library   exposed-modules:     Log,+                       Log.Backend.LogList,                        Log.Backend.StandardOutput,                        Log.Backend.StandardOutput.Bulk,                        Log.Backend.Text,
+ src/Log/Backend/LogList.hs view
@@ -0,0 +1,43 @@+-- | LogList logging backed.+module Log.Backend.LogList+  ( LogList+  , newLogList+  , getLogList+  , putLogList+  , clearLogList+  , withLogListLogger+  ) where++import Control.Concurrent.MVar+import System.IO+import Prelude++import Log.Data+import Log.Internal.Logger++newtype LogList = LogList (MVar [LogMessage])+  deriving Eq++-- | Create a new, empty list.+newLogList :: IO LogList+newLogList = LogList <$> newMVar []++-- | Retrieve messages stored in the list.+getLogList :: LogList -> IO [LogMessage]+getLogList (LogList ll) = reverse <$> readMVar ll++-- | Put a message into the list.+putLogList :: LogList -> LogMessage -> IO ()+putLogList (LogList ll) msg = modifyMVar_ ll $ \msgs -> return $! msg : msgs++-- | Clear the list.+clearLogList :: LogList -> IO ()+clearLogList (LogList ll) = modifyMVar_ ll . const $ return []++-- | Creates a logger that stores messages in the given 'LogList'.+withLogListLogger :: LogList -> (Logger -> IO r) -> IO r+withLogListLogger ll = withLogger $ Logger+  { loggerWriteMessage = putLogList ll+  , loggerWaitForWrite = return ()+  , loggerShutdown     = return ()+  }