packages feed

monad-logger 0.3.18 → 0.3.19

raw patch · 4 files changed

+166/−2 lines, 4 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Control.Monad.Logger: logDebugCS :: MonadLogger m => CallStack -> Text -> m ()
+ Control.Monad.Logger: logErrorCS :: MonadLogger m => CallStack -> Text -> m ()
+ Control.Monad.Logger: logInfoCS :: MonadLogger m => CallStack -> Text -> m ()
+ Control.Monad.Logger: logOtherCS :: MonadLogger m => CallStack -> LogLevel -> Text -> m ()
+ Control.Monad.Logger: logWarnCS :: MonadLogger m => CallStack -> Text -> m ()
+ Control.Monad.Logger.CallStack: logDebug :: (HasCallStack, MonadLogger m) => Text -> m ()
+ Control.Monad.Logger.CallStack: logError :: (HasCallStack, MonadLogger m) => Text -> m ()
+ Control.Monad.Logger.CallStack: logInfo :: (HasCallStack, MonadLogger m) => Text -> m ()
+ Control.Monad.Logger.CallStack: logWarn :: (HasCallStack, MonadLogger m) => Text -> m ()
- Control.Monad.Logger: askLoggerIO :: MonadLoggerIO m => m (Loc -> LogSource -> LogLevel -> LogStr -> IO ())
+ Control.Monad.Logger: askLoggerIO :: (MonadLoggerIO m, MonadTrans t, MonadLogger (t m), MonadIO (t m)) => t m (Loc -> LogSource -> LogLevel -> LogStr -> IO ())
- Control.Monad.Logger: monadLoggerLog :: (MonadLogger m, ToLogStr msg) => Loc -> LogSource -> LogLevel -> msg -> m ()
+ Control.Monad.Logger: monadLoggerLog :: (MonadLogger m, MonadTrans t, MonadLogger (t m), ToLogStr msg) => Loc -> LogSource -> LogLevel -> msg -> t m ()
- Control.Monad.Logger: toLogStr :: ToLogStr msg => msg -> LogStr
+ Control.Monad.Logger: toLogStr :: msg -> LogStr

Files

ChangeLog.md view
@@ -1,3 +1,7 @@+## 0.3.19++* Add CallStack-based functions and `Control.Monad.Logger.CallStack` module+ ## 0.3.18  * Added logTHShow and logDebugSH, logInfoSH, etc. Accepts an argument of `Show a => a` instead of just `Text`.
Control/Monad/Logger.hs view
@@ -1,5 +1,8 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE DefaultSignatures #-}+#if WITH_CALLSTACK+{-# LANGUAGE ImplicitParams #-}+#endif #if WITH_TEMPLATE_HASKELL {-# LANGUAGE TemplateHaskell #-} #endif@@ -75,7 +78,14 @@     , logWarnNS     , logErrorNS     , logOtherNS-+#if WITH_CALLSTACK+    -- * Callstack logging+    , logDebugCS+    , logInfoCS+    , logWarnCS+    , logErrorCS+    , logOtherCS+#endif     -- * utilities for defining your own loggers     , defaultLogStr     , Loc (..)@@ -142,6 +152,10 @@ import Control.Monad.State.Class  ( MonadState (..) ) import Control.Monad.Writer.Class ( MonadWriter (..) ) +#if WITH_CALLSTACK+import GHC.Stack as GHC+#endif+ import Prelude hiding (catch)  #if MIN_VERSION_fast_logger(2, 1, 0)@@ -758,3 +772,65 @@  logOtherNS :: MonadLogger m => Text -> LogLevel -> Text -> m () logOtherNS = logWithoutLoc++#if WITH_CALLSTACK+-- Callstack based logging++mkLoggerLoc :: GHC.SrcLoc -> Loc+mkLoggerLoc loc =+  Loc { loc_filename = GHC.srcLocFile loc+      , loc_package  = GHC.srcLocPackage loc+      , loc_module   = GHC.srcLocModule loc+      , loc_start    = ( GHC.srcLocStartLine loc+                       , GHC.srcLocStartCol loc)+      , loc_end      = ( GHC.srcLocEndLine loc+                       , GHC.srcLocEndCol loc)+      }++locFromCS :: GHC.CallStack -> Loc+locFromCS cs = case getCallStack cs of+                 ((_, loc):_) -> mkLoggerLoc loc+                 _            -> defaultLoc++logCS :: (MonadLogger m, ToLogStr msg)+      => GHC.CallStack+      -> LogSource+      -> LogLevel+      -> msg+      -> m ()+logCS cs src lvl msg =+  monadLoggerLog (locFromCS cs) src lvl msg++-- | Logs a message with location given by 'CallStack'.+-- See 'Control.Monad.Logger.CallStack' for more convenient+-- functions for 'CallStack' based logging.+--+-- @since 0.3.19+logDebugCS :: MonadLogger m => GHC.CallStack -> Text -> m ()+logDebugCS cs msg = logCS cs "" LevelDebug msg++-- | See 'logDebugCS'+--+-- @since 0.3.19+logInfoCS :: MonadLogger m => GHC.CallStack -> Text -> m ()+logInfoCS cs msg = logCS cs "" LevelInfo msg++-- | See 'logDebugCS'+--+-- @since 0.3.19+logWarnCS :: MonadLogger m => GHC.CallStack -> Text -> m ()+logWarnCS cs msg = logCS cs "" LevelWarn msg++-- | See 'logDebugCS'+--+-- @since 0.3.19+logErrorCS :: MonadLogger m => GHC.CallStack -> Text -> m ()+logErrorCS cs msg = logCS cs "" LevelError msg++-- | See 'logDebugCS'+--+-- @since 0.3.19+logOtherCS :: MonadLogger m => GHC.CallStack -> LogLevel -> Text -> m ()+logOtherCS cs lvl msg = logCS cs "" lvl msg++#endif
+ Control/Monad/Logger/CallStack.hs view
@@ -0,0 +1,78 @@+-- | Log functions using CallStack support in place of Template Haskell+--+-- @since 0.3.19+module Control.Monad.Logger.CallStack (+    module Log+  , logDebug+  , logInfo+  , logWarn+  , logError+  ) where++import           Control.Monad.Logger as Log hiding (logDebug, logError,+                                              logInfo, logOther, logWarn)+import           Data.Text            (Text)+import qualified Data.Text            as Text+import           GHC.Stack++-- | Logs a message with the location provided by+-- an implicit 'CallStack'.+--+-- @since 0.3.19+logDebug :: (HasCallStack, Log.MonadLogger m) => Text -> m ()+logDebug = Log.logDebugCS callStack++-- | See 'logDebug'+--+-- @since 0.3.19+logInfo :: (HasCallStack, Log.MonadLogger m) => Text -> m ()+logInfo = Log.logInfoCS callStack++-- | See 'logDebug'+--+-- @since 0.3.19+logWarn :: (HasCallStack, Log.MonadLogger m) => Text -> m ()+logWarn = Log.logWarnCS callStack++-- | See 'logDebug'+--+-- @since 0.3.19+logError :: (HasCallStack, Log.MonadLogger m) => Text -> m ()+logError = Log.logErrorCS callStack++-- | See 'logDebug'+--+-- @since 0.3.19+logOther :: (HasCallStack, Log.MonadLogger m) => Log.LogLevel -> Text -> m ()+logOther = Log.logOtherCS callStack++-- | Logs a showable value with the location provided by+-- an implicit 'CallStack'.+--+-- @since 0.3.19+logDebugSH :: (HasCallStack, Log.MonadLogger m, Show a) => a -> m ()+logDebugSH = Log.logDebugCS callStack . Text.pack . show++-- | See 'logDebugSH'+--+-- @since 0.3.19+logInfoSH :: (HasCallStack, Log.MonadLogger m, Show a) => a -> m ()+logInfoSH = Log.logInfoCS callStack . Text.pack . show++-- | See 'logDebugSH'+--+-- @since 0.3.19+logWarnSH :: (HasCallStack, Log.MonadLogger m, Show a) => a -> m ()+logWarnSH = Log.logWarnCS callStack . Text.pack . show++-- | See 'logDebugSH'+--+-- @since 0.3.19+logErrorSH :: (HasCallStack, Log.MonadLogger m, Show a) => a -> m ()+logErrorSH = Log.logErrorCS callStack . Text.pack . show++-- | See 'logDebugSH'+--+-- @since 0.3.19+logOtherSH :: (HasCallStack, Log.MonadLogger m, Show a) => Log.LogLevel -> a -> m ()+logOtherSH lvl = Log.logOtherCS callStack lvl . Text.pack . show
monad-logger.cabal view
@@ -1,5 +1,5 @@ name:                monad-logger-version:             0.3.18+version:             0.3.19 synopsis:            A class of monads which can log messages. description:         Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/monad-logger>. homepage:            https://github.com/kazu-yamamoto/logger@@ -25,6 +25,7 @@  library   exposed-modules:     Control.Monad.Logger+   build-depends:       base                >= 4         && < 5                      , transformers                      , transformers-compat >= 0.3@@ -43,6 +44,11 @@                      , bytestring                      , blaze-builder                      , exceptions++  if impl(ghc >= 8.0.1)+     cpp-options: -DWITH_CALLSTACK+     exposed-modules:  Control.Monad.Logger.CallStack+   if flag(template_haskell)      build-depends:     template-haskell