packages feed

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 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