packages feed

polysemy-log 0.2.2.0 → 0.2.2.1

raw patch · 3 files changed

+59/−21 lines, 3 filesdep ~ansi-terminaldep ~polysemydep ~reludePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: ansi-terminal, polysemy, relude, string-interpolate

API changes (from Hackage documentation)

- Polysemy.Log.Data.LogMetadata: [Annotated] :: HasCallStack => a -> LogMetadata a m ()
+ Polysemy.Log.Data.LogMetadata: [Annotated] :: HasCallStack => msg -> LogMetadata msg m ()
- Polysemy.Log.Data.LogMetadata: data LogMetadata a :: Effect
+ Polysemy.Log.Data.LogMetadata: data LogMetadata msg :: Effect

Files

lib/Polysemy/Log/Data/LogMetadata.hs view
@@ -2,13 +2,21 @@ {-# options_haddock prune #-} module Polysemy.Log.Data.LogMetadata where +import Polysemy.Internal (send)+ -- |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 a :: Effect where+data LogMetadata msg :: Effect where   -- |Schedule a message to be annotated and logged.-  Annotated :: HasCallStack => a -> LogMetadata a m ()+  Annotated :: HasCallStack => msg -> LogMetadata msg m () -makeSem ''LogMetadata+annotated ::+  HasCallStack =>+  Member (LogMetadata msg) r =>+  msg ->+  Sem r ()+annotated msg =+  send (Annotated msg)
polysemy-log.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           polysemy-log-version:        0.2.2.0+version:        0.2.2.1 synopsis:       Polysemy effects for logging description:    See <https://hackage.haskell.org/package/polysemy-log/docs/Polysemy-Log.html> category:       Logging@@ -107,13 +107,13 @@       ViewPatterns   ghc-options: -flate-specialise -fspecialise-aggressively -Wall -Wredundant-constraints   build-depends:-      ansi-terminal >=0.10.0 && <0.11+      ansi-terminal     , base ==4.*-    , polysemy >=1.3 && <1.6+    , polysemy ==1.5.*     , polysemy-conc >=0.1.0.0 && <0.2     , polysemy-time >=0.1.1.0 && <0.2-    , relude >=0.5 && <0.8-    , string-interpolate >=0.2.1+    , relude >=0.7 && <1.2+    , string-interpolate     , template-haskell     , text     , time@@ -193,16 +193,16 @@       ViewPatterns   ghc-options: -flate-specialise -fspecialise-aggressively -Wall -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N   build-depends:-      ansi-terminal >=0.10.0 && <0.11+      ansi-terminal     , base ==4.*     , hedgehog-    , polysemy >=1.3 && <1.6+    , polysemy ==1.5.*     , polysemy-conc >=0.1.0.0 && <0.2     , polysemy-log     , polysemy-test     , polysemy-time >=0.1.1.0 && <0.2-    , relude >=0.5 && <0.8-    , string-interpolate >=0.2.1+    , relude >=0.7 && <1.2+    , string-interpolate     , tasty     , tasty-hedgehog     , template-haskell
readme.md view
@@ -4,19 +4,48 @@  # About -A common interface for the polysemy logging backend adapters:+A common interface for the polysemy logging backend adapters. +An example program using [co-log], for the simple logger with predefined formatting and a custom data type:+ ```haskell-import Polysemy.Log-import Polysemy.Log.Colog+import Colog (logTextStdout)+import Colog.Polysemy (runLogAction)+import Polysemy (runM) -prog :: Member Log r => Sem r ()-prog = do-  Log.debug "debugging"-  Log.error "failing"+import Polysemy.Log.Colog (interpretDataLogColog, interpretLogStdout)+import qualified Polysemy.Log.Data.DataLog as DataLog+import Polysemy.Log.Data.DataLog (DataLog)+import qualified Polysemy.Log.Data.Log as Log+import Polysemy.Log.Data.Log (Log) -interpretLogColog prog :: Sem [Colog.Log (LogEntry LogMessage), Embed IO] ()-interpretLogStdout prog :: Sem '[Embed IO] ()+progSimple ::+  Member Log r =>+  Sem r ()+progSimple = do+  Log.debug "debug"+  Log.warn "warn"++data Message =+  Message {+    severity :: Text,+    message :: Text+  }+  deriving (Eq, Show)++progData ::+  Member (DataLog Message) r =>+  Sem r ()+progData = do+  DataLog.dataLog (Message "warn" "warning!")+  DataLog.local (\ msg@Message{message} -> msg {message = "context: " <> message}) do+    DataLog.dataLog (Message "error" "segfault!")++main :: IO ()+main =+  runM do+    interpretLogStdout progSimple+    runLogAction @IO (contramap message logTextStdout) $ interpretDataLogColog @Message $ progData ```  For more documentation, please consult Hackage:@@ -49,3 +78,4 @@ ```  [nix]: https://nixos.org/manual/nix/unstable+[co-log]: https://hackage.haskell.org/package/co-log