polysemy-log 0.4.1.0 → 0.4.2.0
raw patch · 5 files changed
+94/−11 lines, 5 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Polysemy.Log: type Logger = DataLog (LogEntry LogMessage)
+ Polysemy.Log.Data.DataLog: crit :: HasCallStack => Members [Logger, GhcTime] r => Text -> Sem r ()
+ Polysemy.Log.Data.DataLog: debug :: HasCallStack => Members [Logger, GhcTime] r => Text -> Sem r ()
+ Polysemy.Log.Data.DataLog: error :: HasCallStack => Members [Logger, GhcTime] r => Text -> Sem r ()
+ Polysemy.Log.Data.DataLog: info :: HasCallStack => Members [Logger, GhcTime] r => Text -> Sem r ()
+ Polysemy.Log.Data.DataLog: log :: HasCallStack => Members [Logger, GhcTime] r => Severity -> Text -> Sem r ()
+ Polysemy.Log.Data.DataLog: trace :: HasCallStack => Members [Logger, GhcTime] r => Text -> Sem r ()
+ Polysemy.Log.Data.DataLog: type Logger = DataLog (LogEntry LogMessage)
+ Polysemy.Log.Data.DataLog: warn :: HasCallStack => Members [Logger, GhcTime] r => Text -> Sem r ()
Files
- lib/Polysemy/Log.hs +2/−1
- lib/Polysemy/Log/Data/DataLog.hs +87/−3
- lib/Polysemy/Log/Data/Log.hs +2/−2
- lib/Polysemy/Log/Stdout.hs +2/−4
- polysemy-log.cabal +1/−1
lib/Polysemy/Log.hs view
@@ -9,6 +9,7 @@ -- * Arbitrary Data Messages -- $datalog DataLog(DataLog),+ Logger, dataLog, -- ** Interpreters@@ -65,7 +66,7 @@ import Polysemy.Log.Atomic (interpretDataLogAtomic, interpretDataLogAtomic', interpretLogAtomic, interpretLogAtomic') import Polysemy.Log.Conc (interceptDataLogConc)-import Polysemy.Log.Data.DataLog (DataLog (DataLog), dataLog)+import Polysemy.Log.Data.DataLog (DataLog (DataLog), Logger, dataLog) import Polysemy.Log.Data.Log (Log (Log), crit, debug, error, info, log, trace, warn) import Polysemy.Log.Data.LogEntry (LogEntry (LogEntry)) import Polysemy.Log.Data.LogMessage (LogMessage (LogMessage))
lib/Polysemy/Log/Data/DataLog.hs view
@@ -1,11 +1,18 @@ {-# options_haddock prune #-}--- |Description: Internal +-- |Description: Internal module Polysemy.Log.Data.DataLog where --- |Adapter for a logging backend.+import Polysemy.Internal (send)+import Polysemy.Time (GhcTime)++import Polysemy.Log.Data.LogEntry (LogEntry, annotate)+import Polysemy.Log.Data.LogMessage (LogMessage (LogMessage))+import Polysemy.Log.Data.Severity (Severity (Crit, Debug, Error, Info, Trace, Warn))++-- |Structural logs, used as a backend for the simpler 'Text' log effect, 'Polysemy.Log.Log'. ----- Usually this is reinterpreted into an effect like those from /co-log/ or /di/, but it can be used purely for testing.+-- Can also be used on its own, or reinterpreted into an effect like those from /co-log/ or /di/. data DataLog a :: Effect where -- |Schedule an arbitrary value for logging. DataLog :: a -> DataLog a m ()@@ -14,3 +21,80 @@ Local :: (a -> a) -> m b -> DataLog a m b makeSem ''DataLog++-- |Alias for the logger with the default message type used by 'Polysemy.Log.Log'.+type Logger =+ DataLog (LogEntry LogMessage)++-- |Log a text message with the given severity.+-- Basic 'Sem' constructor.+log ::+ HasCallStack =>+ Members [Logger, GhcTime] r =>+ Severity ->+ Text ->+ Sem r ()+log severity message =+ withFrozenCallStack do+ send . DataLog =<< annotate (LogMessage severity message)+{-# inline log #-}++-- |Log a text message with the 'Trace' severity.+trace ::+ HasCallStack =>+ Members [Logger, GhcTime] r =>+ Text ->+ Sem r ()+trace =+ withFrozenCallStack (log Trace)+{-# inline trace #-}++-- |Log a text message with the 'Debug' severity.+debug ::+ HasCallStack =>+ Members [Logger, GhcTime] r =>+ Text ->+ Sem r ()+debug =+ withFrozenCallStack (log Debug)+{-# inline debug #-}++-- |Log a text message with the 'Info' severity.+info ::+ HasCallStack =>+ Members [Logger, GhcTime] r =>+ Text ->+ Sem r ()+info =+ withFrozenCallStack (log Info)+{-# inline info #-}++-- |Log a text message with the 'Warn' severity.+warn ::+ HasCallStack =>+ Members [Logger, GhcTime] r =>+ Text ->+ Sem r ()+warn =+ withFrozenCallStack (log Warn)+{-# inline warn #-}++-- |Log a text message with the 'Error' severity.+error ::+ HasCallStack =>+ Members [Logger, GhcTime] r =>+ Text ->+ Sem r ()+error =+ withFrozenCallStack (log Error)+{-# inline error #-}++-- |Log a text message with the 'Crit' severity.+crit ::+ HasCallStack =>+ Members [Logger, GhcTime] r =>+ Text ->+ Sem r ()+crit =+ withFrozenCallStack (log Crit)+{-# inline crit #-}
lib/Polysemy/Log/Data/Log.hs view
@@ -3,8 +3,8 @@ import Polysemy.Internal (send) -import Polysemy.Log.Data.Severity (Severity, Severity(Debug, Trace, Info, Warn, Error, Crit))-import Polysemy.Log.Data.LogMessage (LogMessage(LogMessage))+import Polysemy.Log.Data.LogMessage (LogMessage (LogMessage))+import Polysemy.Log.Data.Severity (Severity (Crit, Debug, Error, Info, Trace, Warn)) -- |The default high-level effect for simple text messages. -- To be used with the severity constructors:
lib/Polysemy/Log/Stdout.hs view
@@ -97,10 +97,9 @@ Members [Resource, Async, Race, Embed IO] r => InterpreterFor Log r interpretLogStdoutConc =- interpretTimeGhc . interpretDataLogStdoutWith formatLogEntry . interpretLogDataLogConc 64 .- raiseUnder2+ raiseUnder {-# inline interpretLogStdoutConc #-} -- |Like 'interpretLogStdout', but process messages concurrently.@@ -109,9 +108,8 @@ Maybe Severity -> InterpreterFor Log r interpretLogStdoutLevelConc level =- interpretTimeGhc . interpretDataLogStdoutWith formatLogEntry . setLogLevel level . interpretLogDataLogConc 64 .- raiseUnder2+ raiseUnder {-# inline interpretLogStdoutLevelConc #-}
polysemy-log.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: polysemy-log-version: 0.4.1.0+version: 0.4.2.0 synopsis: Polysemy Effects for Logging description: See <https://hackage.haskell.org/package/polysemy-log/docs/Polysemy-Log.html> category: Logging