packages feed

polysemy-log 0.6.0.1 → 0.7.0.0

raw patch · 27 files changed

+302/−309 lines, 27 filesdep ~basedep ~incipit-coredep ~polysemyPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base, incipit-core, polysemy, polysemy-conc, polysemy-test, polysemy-time

API changes (from Hackage documentation)

- Polysemy.Log.Data.DataLog: [DataLog] :: a -> DataLog a m ()
- Polysemy.Log.Data.DataLog: [Local] :: (a -> a) -> m b -> DataLog a m b
- Polysemy.Log.Data.DataLog: crit :: HasCallStack => Members [Logger, GhcTime] r => Text -> Sem r ()
- Polysemy.Log.Data.DataLog: data DataLog a :: Effect
- 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 ()
- Polysemy.Log.Data.Log: [Log] :: HasCallStack => LogMessage -> Log m ()
- Polysemy.Log.Data.Log: crit :: HasCallStack => Member Log r => Text -> Sem r ()
- Polysemy.Log.Data.Log: data Log :: Effect
- Polysemy.Log.Data.Log: debug :: HasCallStack => Member Log r => Text -> Sem r ()
- Polysemy.Log.Data.Log: error :: HasCallStack => Member Log r => Text -> Sem r ()
- Polysemy.Log.Data.Log: info :: HasCallStack => Member Log r => Text -> Sem r ()
- Polysemy.Log.Data.Log: log :: HasCallStack => Member Log r => Severity -> Text -> Sem r ()
- Polysemy.Log.Data.Log: trace :: HasCallStack => Member Log r => Text -> Sem r ()
- Polysemy.Log.Data.Log: warn :: HasCallStack => Member Log r => Text -> Sem r ()
- Polysemy.Log.Data.LogMetadata: [Annotated] :: HasCallStack => msg -> LogMetadata msg m ()
- Polysemy.Log.Data.LogMetadata: annotated :: HasCallStack => Member (LogMetadata msg) r => msg -> Sem r ()
- Polysemy.Log.Data.LogMetadata: data LogMetadata msg :: Effect
+ Polysemy.Log: interpretDataLog :: forall a r. (a -> Sem r ()) -> InterpreterFor (DataLog a) r
+ Polysemy.Log: parseSeverity :: Text -> Maybe Severity
+ Polysemy.Log.Data.Severity: parseSeverity :: Text -> Maybe Severity
+ Polysemy.Log.Effect.DataLog: [DataLog] :: a -> DataLog a m ()
+ Polysemy.Log.Effect.DataLog: [Local] :: (a -> a) -> m b -> DataLog a m b
+ Polysemy.Log.Effect.DataLog: crit :: HasCallStack => Members [Logger, GhcTime] r => Text -> Sem r ()
+ Polysemy.Log.Effect.DataLog: data DataLog a :: Effect
+ Polysemy.Log.Effect.DataLog: debug :: HasCallStack => Members [Logger, GhcTime] r => Text -> Sem r ()
+ Polysemy.Log.Effect.DataLog: error :: HasCallStack => Members [Logger, GhcTime] r => Text -> Sem r ()
+ Polysemy.Log.Effect.DataLog: info :: HasCallStack => Members [Logger, GhcTime] r => Text -> Sem r ()
+ Polysemy.Log.Effect.DataLog: log :: HasCallStack => Members [Logger, GhcTime] r => Severity -> Text -> Sem r ()
+ Polysemy.Log.Effect.DataLog: trace :: HasCallStack => Members [Logger, GhcTime] r => Text -> Sem r ()
+ Polysemy.Log.Effect.DataLog: type Logger = DataLog (LogEntry LogMessage)
+ Polysemy.Log.Effect.DataLog: warn :: HasCallStack => Members [Logger, GhcTime] r => Text -> Sem r ()
+ Polysemy.Log.Effect.Log: [Log] :: HasCallStack => LogMessage -> Log m ()
+ Polysemy.Log.Effect.Log: crit :: HasCallStack => Member Log r => Text -> Sem r ()
+ Polysemy.Log.Effect.Log: data Log :: Effect
+ Polysemy.Log.Effect.Log: debug :: HasCallStack => Member Log r => Text -> Sem r ()
+ Polysemy.Log.Effect.Log: error :: HasCallStack => Member Log r => Text -> Sem r ()
+ Polysemy.Log.Effect.Log: info :: HasCallStack => Member Log r => Text -> Sem r ()
+ Polysemy.Log.Effect.Log: log :: HasCallStack => Member Log r => Severity -> Text -> Sem r ()
+ Polysemy.Log.Effect.Log: trace :: HasCallStack => Member Log r => Text -> Sem r ()
+ Polysemy.Log.Effect.Log: warn :: HasCallStack => Member Log r => Text -> Sem r ()
+ Polysemy.Log.Effect.LogMetadata: [Annotated] :: HasCallStack => msg -> LogMetadata msg m ()
+ Polysemy.Log.Effect.LogMetadata: annotated :: HasCallStack => Member (LogMetadata msg) r => msg -> Sem r ()
+ Polysemy.Log.Effect.LogMetadata: data LogMetadata msg :: Effect

Files

− changelog.md
@@ -1,20 +0,0 @@-# Unreleased--* Add interceptors for setting the log level.-* Set std streams to line buffering.--# 0.3.0.0--* Add concurrent interpreters for stdout and stderr.-* Add stdout interpreters.--# 0.2.1.0--* Add naive stderr interpreters for `DataLog` and `Log`.--# 0.2.0.0--* `DataLog` got a second constructor, `Local`. It takes a higher-order `Sem` and a transformation function, the latter-  of which is applied to all messages logged within the former.-  This allows context manipulation for blocks of code.-* `interceptDataLogConc` adds support for concurrent processing of log messages to any interpretation of `DataLog`.
lib/Polysemy/Log.hs view
@@ -1,7 +1,7 @@ {-# language NoImplicitPrelude #-} {-# options_haddock prune #-}--- |Description: Polysemy Effects for Logging +-- |Description: Polysemy Effects for Logging module Polysemy.Log (   -- * Introduction   -- $intro@@ -19,6 +19,7 @@   interpretDataLogStdout,   interpretDataLogAtomic',   interpretDataLogAtomic,+  interpretDataLog,    -- * Text Messages with Severity and Metadata   -- $messages@@ -34,6 +35,7 @@   crit,   formatLogEntry,   Severity(..),+  parseSeverity,   setLogLevel,   setLogLevelWith, @@ -66,14 +68,15 @@  import Polysemy.Log.Atomic (interpretDataLogAtomic, interpretDataLogAtomic', interpretLogAtomic, interpretLogAtomic') import Polysemy.Log.Conc (interceptDataLogConc)-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.Effect.DataLog (DataLog (DataLog), Logger, dataLog)+import Polysemy.Log.Effect.Log (Log (Log), crit, debug, error, info, log, trace, warn) import Polysemy.Log.Data.LogEntry (LogEntry (LogEntry)) import Polysemy.Log.Data.LogMessage (LogMessage (LogMessage))-import Polysemy.Log.Data.Severity (Severity (..))+import Polysemy.Log.Data.Severity (Severity (..), parseSeverity) import Polysemy.Log.Format (formatLogEntry) import Polysemy.Log.Level (setLogLevel, setLogLevelWith) import Polysemy.Log.Log (+  interpretDataLog,   interpretLogDataLog,   interpretLogDataLog',   interpretLogDataLogConc,
lib/Polysemy/Log/Atomic.hs view
@@ -3,8 +3,8 @@  import Control.Concurrent.STM (newTVarIO) -import Polysemy.Log.Data.DataLog (DataLog)-import Polysemy.Log.Data.Log (Log (Log))+import Polysemy.Log.Effect.DataLog (DataLog)+import Polysemy.Log.Effect.Log (Log (Log)) import Polysemy.Log.Data.LogMessage (LogMessage) import Polysemy.Log.Log (interpretDataLog) 
lib/Polysemy/Log/Conc.hs view
@@ -9,8 +9,8 @@ import Polysemy.Internal.Tactics (liftT) import Polysemy.Time (Seconds (Seconds)) -import qualified Polysemy.Log.Data.DataLog as DataLog-import Polysemy.Log.Data.DataLog (DataLog (DataLog, Local))+import qualified Polysemy.Log.Effect.DataLog as DataLog+import Polysemy.Log.Effect.DataLog (DataLog (DataLog, Local))  -- |Intercept 'DataLog' for concurrent processing. -- This does not send any action to the ultimate interpreter but writes all log messages to the provided queue.
− lib/Polysemy/Log/Data/DataLog.hs
@@ -1,100 +0,0 @@-{-# options_haddock prune #-}---- |Description: Internal-module Polysemy.Log.Data.DataLog where--import GHC.Stack (withFrozenCallStack)-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'.------ 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 ()-  -- |Stores the provided function in the interpreter and applies it to all log messages emitted within the higher-order-  -- thunk that's the second argument.-  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 'Polysemy.Log.Data.Severity.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
@@ -1,102 +0,0 @@--- |Description: Internal-module Polysemy.Log.Data.Log where--import GHC.Stack (withFrozenCallStack)--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:------ @--- import qualified Polysemy.Log as Log------ prog = do---   Log.debug "debugging…"---   Log.warn "warning!"--- @------ Interpreters should preprocess and relay the message to 'Polysemy.Log.DataLog'.-data Log :: Effect where-  -- |Schedule a message to be logged.-  Log :: HasCallStack => LogMessage -> Log m ()---- |Log a message with the given severity.--- Basic 'Sem' constructor.-log ::-  HasCallStack =>-  Member Log r =>-  Severity ->-  Text ->-  Sem r ()-log severity message =-  withFrozenCallStack $-  send (Log (LogMessage severity message))-{-# inline log #-}---- |Log a message with the 'Trace' severity.-trace ::-  HasCallStack =>-  Member Log r =>-  Text ->-  Sem r ()-trace =-  withFrozenCallStack $-  log Trace-{-# inline trace #-}---- |Log a message with the 'Debug' severity.-debug ::-  HasCallStack =>-  Member Log r =>-  Text ->-  Sem r ()-debug =-  withFrozenCallStack $-  log Debug-{-# inline debug #-}---- |Log a message with the 'Info' severity.-info ::-  HasCallStack =>-  Member Log r =>-  Text ->-  Sem r ()-info =-  withFrozenCallStack $-  log Info-{-# inline info #-}---- |Log a message with the 'Warn' severity.-warn ::-  HasCallStack =>-  Member Log r =>-  Text ->-  Sem r ()-warn =-  withFrozenCallStack $-  log Warn-{-# inline warn #-}---- |Log a message with the 'Polysemy.Log.Data.Severity.Error' severity.-error ::-  HasCallStack =>-  Member Log r =>-  Text ->-  Sem r ()-error =-  withFrozenCallStack $-  log Error-{-# inline error #-}---- |Log a message with the 'Crit' severity.-crit ::-  HasCallStack =>-  Member Log r =>-  Text ->-  Sem r ()-crit =-  withFrozenCallStack $-  log Crit-{-# inline crit #-}
lib/Polysemy/Log/Data/LogEntry.hs view
@@ -16,7 +16,7 @@     -- |The call stack of the function in which the entry was created.     source :: !CallStack   }-  deriving (Show)+  deriving stock (Show)  -- |Add call stack and timestamp to a message and wrap it with 'LogEntry'. annotate ::
lib/Polysemy/Log/Data/LogMessage.hs view
@@ -10,4 +10,4 @@     severity :: !Severity,     message :: !Text   }-  deriving (Eq, Show)+  deriving stock (Eq, Show)
− lib/Polysemy/Log/Data/LogMetadata.hs
@@ -1,20 +0,0 @@--- |Description: Internal-module Polysemy.Log.Data.LogMetadata where---- |Internal effect used as an intermediate stage between 'Polysemy.Log.Log' and 'Polysemy.Log.DataLog', for the purpose--- of isolating the metadata annotation task.------ The type of metadata is arbitrary and chosen in interpreters, but this exposes a 'HasCallStack' dependency since it's--- the primary purpose.-data LogMetadata msg :: Effect where-  -- |Schedule a message to be annotated and logged.-  Annotated :: HasCallStack => msg -> LogMetadata msg m ()---- |Schedule a message to be annotated and logged.-annotated ::-  HasCallStack =>-  Member (LogMetadata msg) r =>-  msg ->-  Sem r ()-annotated msg =-  send (Annotated msg)
lib/Polysemy/Log/Data/Severity.hs view
@@ -1,6 +1,8 @@ -- |Description: Internal module Polysemy.Log.Data.Severity where +import qualified Data.Text as Text+ -- |A log message's severity, or log level. data Severity =   Trace@@ -14,4 +16,16 @@   Error   |   Crit-  deriving (Eq, Show, Enum, Ord)+  deriving stock (Eq, Show, Enum, Ord)++-- |Parse a 'Text' into a 'Severity'.+parseSeverity :: Text -> Maybe Severity+parseSeverity =+  Text.toLower >>> \case+    "trace" -> Just Trace+    "debug" -> Just Debug+    "info" -> Just Info+    "warn" -> Just Warn+    "error" -> Just Error+    "crit" -> Just Crit+    _ -> Nothing
+ lib/Polysemy/Log/Effect/DataLog.hs view
@@ -0,0 +1,99 @@+{-# options_haddock prune #-}++-- |Description: Internal+module Polysemy.Log.Effect.DataLog where++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'.+--+-- 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 ()+  -- |Stores the provided function in the interpreter and applies it to all log messages emitted within the higher-order+  -- thunk that's the second argument.+  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 'Polysemy.Log.Data.Severity.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/Effect/Log.hs view
@@ -0,0 +1,100 @@+-- |Description: Internal+module Polysemy.Log.Effect.Log where++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:+--+-- @+-- import qualified Polysemy.Log as Log+--+-- prog = do+--   Log.debug "debugging…"+--   Log.warn "warning!"+-- @+--+-- Interpreters should preprocess and relay the message to 'Polysemy.Log.DataLog'.+data Log :: Effect where+  -- |Schedule a message to be logged.+  Log :: HasCallStack => LogMessage -> Log m ()++-- |Log a message with the given severity.+-- Basic 'Sem' constructor.+log ::+  HasCallStack =>+  Member Log r =>+  Severity ->+  Text ->+  Sem r ()+log severity message =+  withFrozenCallStack $+  send (Log (LogMessage severity message))+{-# inline log #-}++-- |Log a message with the 'Trace' severity.+trace ::+  HasCallStack =>+  Member Log r =>+  Text ->+  Sem r ()+trace =+  withFrozenCallStack $+  log Trace+{-# inline trace #-}++-- |Log a message with the 'Debug' severity.+debug ::+  HasCallStack =>+  Member Log r =>+  Text ->+  Sem r ()+debug =+  withFrozenCallStack $+  log Debug+{-# inline debug #-}++-- |Log a message with the 'Info' severity.+info ::+  HasCallStack =>+  Member Log r =>+  Text ->+  Sem r ()+info =+  withFrozenCallStack $+  log Info+{-# inline info #-}++-- |Log a message with the 'Warn' severity.+warn ::+  HasCallStack =>+  Member Log r =>+  Text ->+  Sem r ()+warn =+  withFrozenCallStack $+  log Warn+{-# inline warn #-}++-- |Log a message with the 'Polysemy.Log.Data.Severity.Error' severity.+error ::+  HasCallStack =>+  Member Log r =>+  Text ->+  Sem r ()+error =+  withFrozenCallStack $+  log Error+{-# inline error #-}++-- |Log a message with the 'Crit' severity.+crit ::+  HasCallStack =>+  Member Log r =>+  Text ->+  Sem r ()+crit =+  withFrozenCallStack $+  log Crit+{-# inline crit #-}
+ lib/Polysemy/Log/Effect/LogMetadata.hs view
@@ -0,0 +1,20 @@+-- |Description: Internal+module Polysemy.Log.Effect.LogMetadata where++-- |Internal effect used as an intermediate stage between 'Polysemy.Log.Log' and 'Polysemy.Log.DataLog', for the purpose+-- of isolating the metadata annotation task.+--+-- The type of metadata is arbitrary and chosen in interpreters, but this exposes a 'HasCallStack' dependency since it's+-- the primary purpose.+data LogMetadata msg :: Effect where+  -- |Schedule a message to be annotated and logged.+  Annotated :: HasCallStack => msg -> LogMetadata msg m ()++-- |Schedule a message to be annotated and logged.+annotated ::+  HasCallStack =>+  Member (LogMetadata msg) r =>+  msg ->+  Sem r ()+annotated msg =+  send (Annotated msg)
lib/Polysemy/Log/Handle.hs view
@@ -4,7 +4,7 @@ import qualified Data.Text.IO as Text import System.IO (BufferMode (LineBuffering), Handle, hSetBuffering) -import Polysemy.Log.Data.DataLog (DataLog)+import Polysemy.Log.Effect.DataLog (DataLog) import Polysemy.Log.Log (interpretDataLog)  -- |Interpret 'DataLog' by printing to the given handle, converting messages to 'Text' with the supplied function.
lib/Polysemy/Log/Level.hs view
@@ -1,8 +1,8 @@ -- |Description: Internal module Polysemy.Log.Level where -import qualified Polysemy.Log.Data.DataLog as DataLog-import Polysemy.Log.Data.DataLog (DataLog (DataLog, Local))+import qualified Polysemy.Log.Effect.DataLog as DataLog+import Polysemy.Log.Effect.DataLog (DataLog (DataLog, Local)) import qualified Polysemy.Log.Data.LogEntry as LogEntry import Polysemy.Log.Data.LogEntry (LogEntry) import qualified Polysemy.Log.Data.LogMessage as LogMessage
lib/Polysemy/Log/Log.hs view
@@ -6,11 +6,11 @@ import Polysemy.Time (GhcTime, interpretTimeGhc)  import Polysemy.Log.Conc (interceptDataLogConc)-import Polysemy.Log.Data.DataLog (DataLog (DataLog, Local), dataLog)-import Polysemy.Log.Data.Log (Log (Log))+import Polysemy.Log.Effect.DataLog (DataLog (DataLog, Local), dataLog)+import Polysemy.Log.Effect.Log (Log (Log)) import Polysemy.Log.Data.LogEntry (LogEntry, annotate) import Polysemy.Log.Data.LogMessage (LogMessage)-import Polysemy.Log.Data.LogMetadata (LogMetadata (Annotated), annotated)+import Polysemy.Log.Effect.LogMetadata (LogMetadata (Annotated), annotated)  -- |Interpret 'Log' into the intermediate internal effect 'LogMetadata'. interpretLogLogMetadata ::
lib/Polysemy/Log/Pure.hs view
@@ -1,7 +1,7 @@ -- |Description: Pure interpreters for 'Log'. module Polysemy.Log.Pure where -import Polysemy.Log.Data.Log (Log (Log))+import Polysemy.Log.Effect.Log (Log (Log)) import Polysemy.Log.Data.LogMessage (LogMessage)  -- |Interpret 'Log' in terms of 'Output'.
lib/Polysemy/Log/Stderr.hs view
@@ -5,8 +5,8 @@ import Polysemy.Time (GhcTime, interpretTimeGhc) import System.IO (stderr) -import Polysemy.Log.Data.DataLog (DataLog)-import Polysemy.Log.Data.Log (Log)+import Polysemy.Log.Effect.DataLog (DataLog)+import Polysemy.Log.Effect.Log (Log) import Polysemy.Log.Data.LogEntry (LogEntry) import Polysemy.Log.Data.LogMessage (LogMessage) import Polysemy.Log.Data.Severity (Severity)
lib/Polysemy/Log/Stdout.hs view
@@ -5,8 +5,8 @@ import Polysemy.Time (GhcTime, interpretTimeGhc) import System.IO (stdout) -import Polysemy.Log.Data.DataLog (DataLog)-import Polysemy.Log.Data.Log (Log)+import Polysemy.Log.Effect.DataLog (DataLog)+import Polysemy.Log.Effect.Log (Log) import Polysemy.Log.Data.LogEntry (LogEntry) import Polysemy.Log.Data.LogMessage (LogMessage) import Polysemy.Log.Data.Severity (Severity)
polysemy-log.cabal view
@@ -5,21 +5,18 @@ -- see: https://github.com/sol/hpack  name:           polysemy-log-version:        0.6.0.1-synopsis:       Polysemy Effects for Logging-description:    See <https://hackage.haskell.org/package/polysemy-log/docs/Polysemy-Log.html>+version:        0.7.0.0+synopsis:       Polysemy effects for logging+description:    See https://hackage.haskell.org/package/polysemy-log/docs/Polysemy-Log.html category:       Logging homepage:       https://github.com/tek/polysemy-log#readme bug-reports:    https://github.com/tek/polysemy-log/issues author:         Torsten Schmits-maintainer:     tek@tryp.io-copyright:      2021 Torsten Schmits+maintainer:     hackage@tryp.io+copyright:      2022 Torsten Schmits license:        BSD-2-Clause-Patent license-file:   LICENSE build-type:     Simple-extra-source-files:-    readme.md-    changelog.md  source-repository head   type: git@@ -30,12 +27,12 @@       Polysemy.Log       Polysemy.Log.Atomic       Polysemy.Log.Conc-      Polysemy.Log.Data.DataLog-      Polysemy.Log.Data.Log       Polysemy.Log.Data.LogEntry       Polysemy.Log.Data.LogMessage-      Polysemy.Log.Data.LogMetadata       Polysemy.Log.Data.Severity+      Polysemy.Log.Effect.DataLog+      Polysemy.Log.Effect.Log+      Polysemy.Log.Effect.LogMetadata       Polysemy.Log.Format       Polysemy.Log.Handle       Polysemy.Log.Level@@ -59,6 +56,7 @@       DeriveFoldable       DeriveFunctor       DeriveGeneric+      DeriveLift       DeriveTraversable       DerivingStrategies       DerivingVia@@ -91,6 +89,7 @@       RankNTypes       RecordWildCards       RecursiveDo+      RoleAnnotations       ScopedTypeVariables       StandaloneDeriving       TemplateHaskell@@ -103,19 +102,21 @@       UndecidableInstances       UnicodeSyntax       ViewPatterns-  ghc-options: -Wall -Wredundant-constraints -Wunused-packages -Widentities+  ghc-options: -Wall -Wredundant-constraints -Wincomplete-uni-patterns -Wmissing-deriving-strategies -Widentities -Wunused-packages   build-depends:       ansi-terminal >=0.10.3     , async-    , base ==4.*-    , incipit-core >=0.2-    , polysemy >=1.5-    , polysemy-conc >=0.7-    , polysemy-time >=0.4+    , base >=4.12 && <5+    , incipit-core >=0.3+    , polysemy >=1.6+    , polysemy-conc >=0.9+    , polysemy-time >=0.5     , stm     , time   mixins:       base hiding (Prelude)+    , incipit-core (IncipitCore as Prelude)+    , incipit-core hiding (IncipitCore)   default-language: Haskell2010  test-suite polysemy-log-unit@@ -144,6 +145,7 @@       DeriveFoldable       DeriveFunctor       DeriveGeneric+      DeriveLift       DeriveTraversable       DerivingStrategies       DerivingVia@@ -176,6 +178,7 @@       RankNTypes       RecordWildCards       RecursiveDo+      RoleAnnotations       ScopedTypeVariables       StandaloneDeriving       TemplateHaskell@@ -188,18 +191,20 @@       UndecidableInstances       UnicodeSyntax       ViewPatterns-  ghc-options: -Wall -Wredundant-constraints -Wunused-packages -Widentities -threaded -rtsopts -with-rtsopts=-N+  ghc-options: -Wall -Wredundant-constraints -Wincomplete-uni-patterns -Wmissing-deriving-strategies -Widentities -Wunused-packages -threaded -rtsopts -with-rtsopts=-N   build-depends:-      base ==4.*-    , incipit-core >=0.2-    , polysemy >=1.5+      base >=4.12 && <5+    , incipit-core >=0.3+    , polysemy     , polysemy-conc     , polysemy-log     , polysemy-plugin-    , polysemy-test+    , polysemy-test >=0.6     , polysemy-time     , tasty     , time   mixins:       base hiding (Prelude)+    , incipit-core (IncipitCore as Prelude)+    , incipit-core hiding (IncipitCore)   default-language: Haskell2010
− readme.md
@@ -1,6 +0,0 @@-A logging library for [Polysemy].--For docs, please visit [Hackage].--[Polysemy](https://hackage.haskell.org/package/polysemy)-[Hackage](https://hackage.haskell.org/package/polysemy-log)
test/Polysemy/Log/Test/ConcTest.hs view
@@ -8,15 +8,15 @@  import Polysemy.Log.Atomic (interpretDataLogAtomic) import Polysemy.Log.Conc (interceptDataLogConc)-import qualified Polysemy.Log.Data.DataLog as DataLog-import Polysemy.Log.Data.DataLog (DataLog)+import qualified Polysemy.Log.Effect.DataLog as DataLog+import Polysemy.Log.Effect.DataLog (DataLog)  data Context =   Context {     context :: [Text],     message :: Text   }-  deriving (Eq, Show)+  deriving stock (Eq, Show)  prog ::   Members [DataLog Context, GhcTime, AtomicState [Context]] r =>
test/Polysemy/Log/Test/DataLogTest.hs view
@@ -3,14 +3,14 @@ import Polysemy.Test (UnitTest, assertEq, runTestAuto)  import Polysemy.Log.Atomic (interpretDataLogAtomic)-import qualified Polysemy.Log.Data.DataLog as DataLog-import Polysemy.Log.Data.DataLog (DataLog)+import qualified Polysemy.Log.Effect.DataLog as DataLog+import Polysemy.Log.Effect.DataLog (DataLog)  data CustomLog =   User Text   |   Fatal Int-  deriving (Eq, Show)+  deriving stock (Eq, Show)  prog ::   Members [DataLog CustomLog, AtomicState [CustomLog]] r =>
test/Polysemy/Log/Test/ExampleTest.hs view
@@ -6,7 +6,7 @@  import qualified Polysemy.Log as Log import Polysemy.Log (DataLog, Log, interpretDataLogStdout, interpretLogStdoutConc)-import qualified Polysemy.Log.Data.DataLog as DataLog+import qualified Polysemy.Log.Effect.DataLog as DataLog  progSimple ::   Member Log r =>@@ -20,7 +20,7 @@     severity :: Text,     message :: Text   }-  deriving (Eq, Show)+  deriving stock (Eq, Show)  progData ::   Member (DataLog Message) r =>
test/Polysemy/Log/Test/LocalTest.hs view
@@ -3,17 +3,17 @@ import Polysemy.Test (UnitTest, assertEq, runTestAuto)  import Polysemy.Log.Atomic (interpretDataLogAtomic)-import qualified Polysemy.Log.Data.DataLog as DataLog-import Polysemy.Log.Data.DataLog (DataLog)-import Polysemy.Log.Data.LogMessage (LogMessage(LogMessage))-import Polysemy.Log.Data.Severity (Severity(Debug))+import Polysemy.Log.Data.LogMessage (LogMessage (LogMessage))+import Polysemy.Log.Data.Severity (Severity (Debug))+import qualified Polysemy.Log.Effect.DataLog as DataLog+import Polysemy.Log.Effect.DataLog (DataLog)  data Context =   Context {     context :: [Text],     message :: LogMessage   }-  deriving (Eq, Show)+  deriving stock (Eq, Show)  log ::   Member (DataLog Context) r =>
test/Polysemy/Log/Test/LogEntryTest.hs view
@@ -3,8 +3,8 @@ import Polysemy.Test (UnitTest, assertEq, runTestAuto)  import Polysemy.Log.Atomic (interpretDataLogAtomic)-import qualified Polysemy.Log.Data.Log as Log-import Polysemy.Log.Data.Log (Log)+import qualified Polysemy.Log.Effect.Log as Log+import Polysemy.Log.Effect.Log (Log) import qualified Polysemy.Log.Data.LogEntry as LogEntry import Polysemy.Log.Data.LogEntry (LogEntry) import Polysemy.Log.Data.LogMessage (LogMessage (LogMessage))
test/Polysemy/Log/Test/SimpleTest.hs view
@@ -3,8 +3,8 @@ import Polysemy.Test (UnitTest, assertEq, runTestAuto)  import Polysemy.Log.Atomic (interpretLogAtomic)-import qualified Polysemy.Log.Data.Log as Log-import Polysemy.Log.Data.Log (Log)+import qualified Polysemy.Log.Effect.Log as Log+import Polysemy.Log.Effect.Log (Log) import Polysemy.Log.Data.LogMessage (LogMessage(LogMessage)) import Polysemy.Log.Data.Severity (Severity(Crit, Debug))