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 +15/−14
- src/Arbor/Monad/Logger.hs +7/−2
- src/Arbor/Monad/Logger/Options.hs +18/−0
- src/Arbor/Monad/Logger/Types.hs +17/−0
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)