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 +11/−3
- polysemy-log.cabal +9/−9
- readme.md +39/−9
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