packages feed

arbor-monad-logger 0.1.0.0 → 0.1.1.0

raw patch · 4 files changed

+57/−16 lines, 4 filesdep +optparse-applicativePVP ok

version bump matches the API change (PVP)

Dependencies added: optparse-applicative

API changes (from Hackage documentation)

+ Arbor.Monad.Logger: runLogT :: MonadIO m => Logger -> LoggingT m a -> m a
+ Arbor.Monad.Logger.Options: LevelDebug :: LogLevel
+ Arbor.Monad.Logger.Options: LevelError :: LogLevel
+ Arbor.Monad.Logger.Options: LevelInfo :: LogLevel
+ Arbor.Monad.Logger.Options: LevelOther :: Text -> LogLevel
+ Arbor.Monad.Logger.Options: LevelWarn :: LogLevel
+ Arbor.Monad.Logger.Options: data LogLevel
+ Arbor.Monad.Logger.Options: logLevelParser :: Parser LogLevel
+ Arbor.Monad.Logger.Types: Logger :: TimedFastLogger -> LogLevel -> Logger
+ Arbor.Monad.Logger.Types: [logLevel] :: Logger -> LogLevel
+ Arbor.Monad.Logger.Types: [logger] :: Logger -> TimedFastLogger
+ Arbor.Monad.Logger.Types: data LogLevel
+ Arbor.Monad.Logger.Types: data Logger
+ Arbor.Monad.Logger.Types: instance GHC.Generics.Generic Arbor.Monad.Logger.Types.Logger
+ Arbor.Monad.Logger.Types: type TimedFastLogger = FormattedTime -> LogStr -> IO ()

Files

arbor-monad-logger.cabal view
@@ -1,6 +1,6 @@ cabal-version:  2.2 name:           arbor-monad-logger-version:        0.1.0.0+version:        0.1.1.0 description:    Please see the README on GitHub at <https://github.com/packetloop/arbor-monad-logger#readme> homepage:       https://github.com/packetloop/arbor-monad-logger#readme bug-reports:    https://github.com/packetloop/arbor-monad-logger/issues@@ -20,16 +20,17 @@   type: git   location: https://github.com/packetloop/arbor-monad-logger -common base               { build-depends: base               >= 4          && < 5      }+common base                 { build-depends: base                 >= 4          && < 5      } -common bytestring         { build-depends: bytestring         >= 0.10.0.0   && < 0.11   }-common fast-logger        { build-depends: fast-logger        >= 2.4.11     && < 2.5    }-common hedgehog           { build-depends: hedgehog           >= 0.6.1      && < 0.7    }-common hspec              { build-depends: hspec              >= 2.6.1      && < 2.7    }-common hw-hspec-hedgehog  { build-depends: hw-hspec-hedgehog  >= 0.1.0.4    && < 0.2    }-common monad-logger       { build-depends: monad-logger       >= 0.3.28.5   && < 0.4    }-common mtl                { build-depends: mtl                >= 2.2        && < 2.3    }-common text               { build-depends: text               >= 1.2.3.0    && < 1.3    }+common bytestring           { build-depends: bytestring           >= 0.10.0.0   && < 0.11   }+common fast-logger          { build-depends: fast-logger          >= 2.4.11     && < 2.5    }+common hedgehog             { build-depends: hedgehog             >= 0.6.1      && < 0.7    }+common hspec                { build-depends: hspec                >= 2.6.1      && < 2.7    }+common hw-hspec-hedgehog    { build-depends: hw-hspec-hedgehog    >= 0.1.0.4    && < 0.2    }+common monad-logger         { build-depends: monad-logger         >= 0.3.28.5   && < 0.4    }+common mtl                  { build-depends: mtl                  >= 2.2        && < 2.3    }+common text                 { build-depends: text                 >= 1.2.3.0    && < 1.3    }+common optparse-applicative { build-depends: optparse-applicative >= 0.14       && < 0.15   }  common common   default-language: Haskell2010@@ -39,12 +40,14 @@           , bytestring           , fast-logger           , monad-logger+          , optparse-applicative           , text   hs-source-dirs:   src-  other-modules:    Paths_arbor_monad_logger-  autogen-modules:  Paths_arbor_monad_logger+  other-modules:   exposed-modules:       Arbor.Monad.Logger+      Arbor.Monad.Logger.Options+      Arbor.Monad.Logger.Types  test-suite arbor-monad-logger-test   import:   base, common@@ -63,8 +66,6 @@           , mtl   main-is:            Main.hs   other-modules:      AppEnv-                    , Paths_arbor_monad_logger-  autogen-modules:    Paths_arbor_monad_logger   hs-source-dirs:     app   ghc-options:        -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -O2 -msse4.2 -rtsopts -threaded   build-depends:      arbor-monad-logger
src/Arbor/Monad/Logger.hs view
@@ -13,6 +13,7 @@   , pushLogMessage   , withStdOutTimedFastLogger   , runTimedLogT+  , runLogT   , runTimedFastLoggerLoggingT   , LogLevel(..)   , LoggingT(..)@@ -20,8 +21,9 @@   , TimedFastLogger(..)   ) where +import Arbor.Monad.Logger.Types (Logger (..)) import Control.Monad.IO.Class-import Control.Monad.Logger   hiding (logDebug, logError, logInfo, logWarn)+import Control.Monad.Logger     hiding (logDebug, logError, logInfo, logWarn) import System.Log.FastLogger  import qualified Control.Monad.Logger  as L@@ -132,10 +134,13 @@   tc <- newTimeCache "%Y-%m-%d %T"   withTimedFastLogger tc (LogStdout defaultBufSize) $ \logger -> f logger +runLogT :: MonadIO m => Logger -> LoggingT m a -> m a+runLogT (Logger lgr lvl) = runTimedLogT lvl lgr+ runTimedLogT :: MonadIO m => LogLevel -> TimedFastLogger -> LoggingT m a -> m a runTimedLogT logLevel logger =   runTimedFastLoggerLoggingT logger . filterLogger (\_ lvl -> lvl >= logLevel)  -- | Run a block using a 'TimedFastLogger'. runTimedFastLoggerLoggingT :: TimedFastLogger -> LoggingT m a -> m a-runTimedFastLoggerLoggingT tfl m = runLoggingT m $ \a b c d -> tfl (defaultTimedLogStr a b c d)+runTimedFastLoggerLoggingT tfl m = L.runLoggingT m $ \a b c d -> tfl (defaultTimedLogStr a b c d)
+ src/Arbor/Monad/Logger/Options.hs view
@@ -0,0 +1,18 @@+module Arbor.Monad.Logger.Options+( LogLevel (..)+, logLevelParser+)+where++import Control.Monad.Logger (LogLevel (..))+import Data.Monoid          ((<>))+import Options.Applicative++logLevelParser :: Parser LogLevel+logLevelParser =+  option auto+    (  long "log-level"+    <> metavar "LOG_LEVEL"+    <> showDefault <> value LevelInfo+    <> help "Log level. Valid values are LevelDebug, LevelInfo, LevelWarn, LevelError"+    )
+ src/Arbor/Monad/Logger/Types.hs view
@@ -0,0 +1,17 @@+{-# LANGUAGE DeriveGeneric #-}+module Arbor.Monad.Logger.Types+( Logger(..)+, TimedFastLogger+, LogLevel(..)+)+where++import Control.Monad.Logger  (LogLevel)+import System.Log.FastLogger (TimedFastLogger)++import GHC.Generics (Generic)++data Logger = Logger+  { logger   :: TimedFastLogger+  , logLevel :: LogLevel+  } deriving (Generic)