simple-logger 0.0.1 → 0.0.2
raw patch · 4 files changed
+23/−14 lines, 4 files
Files
- package.yaml +2/−1
- simple-logger.cabal +2/−1
- src/Control/Logger/Simple.hs +18/−12
- stack.yaml +1/−0
package.yaml view
@@ -1,5 +1,5 @@ name: simple-logger-version: 0.0.1+version: 0.0.2 synopsis: A very simple but efficient logging framework maintainer: Alexander Thiemann <mail@athiemann.net> license: MIT@@ -7,6 +7,7 @@ extra-source-files: - README.md - package.yaml+ - stack.yaml ghc-options: -Wall
simple-logger.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack name: simple-logger-version: 0.0.1+version: 0.0.2 synopsis: A very simple but efficient logging framework homepage: https://github.com/agrafix/simple-logger#readme bug-reports: https://github.com/agrafix/simple-logger/issues@@ -16,6 +16,7 @@ extra-source-files: package.yaml README.md+ stack.yaml source-repository head type: git
src/Control/Logger/Simple.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE ImplicitParams #-} {-# LANGUAGE OverloadedStrings #-} module Control.Logger.Simple@@ -18,7 +19,10 @@ import System.Log.FastLogger import qualified Data.Text as T import qualified Data.Traversable as T+#if MIN_VERSION_base(4,9,0)+#else import qualified GHC.SrcLoc as GHC+#endif import qualified GHC.Stack as GHC data Loggers@@ -47,38 +51,38 @@ showText = T.pack . show logTrace :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m ()-logTrace = doLog LogTrace+logTrace = doLog LogTrace ?callStack logDebug :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m ()-logDebug = doLog LogDebug+logDebug = doLog LogDebug ?callStack logInfo :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m ()-logInfo = doLog LogInfo+logInfo = doLog LogInfo ?callStack logNote :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m ()-logNote = doLog LogNote+logNote = doLog LogNote ?callStack logWarn :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m ()-logWarn = doLog LogWarn+logWarn = doLog LogWarn ?callStack logError :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m ()-logError = doLog LogError+logError = doLog LogError ?callStack --- | Log on error level and calls 'fail'+-- | Log on error level and call 'fail' logFail :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m a logFail t =- do doLog LogError t+ do doLog LogError ?callStack t fail (T.unpack t) -doLog :: (?callStack :: GHC.CallStack) => MonadIO m => LogLevel -> T.Text -> m ()-doLog ll txt =+doLog :: MonadIO m => LogLevel -> GHC.CallStack -> T.Text -> m ()+doLog ll cs txt = liftIO $ readIORef logLevel >>= \logLim -> when (ll >= logLim) $ do lgrs <- readIORef loggers time <- l_timeCache lgrs let loc =- case GHC.getCallStack ?callStack of+ case GHC.getCallStack cs of ((_, l):_) -> GHC.srcLocFile l <> ":" <> show (GHC.srcLocStartLine l) _ -> "unknown"@@ -147,7 +151,9 @@ } newFastLogger (LogFile spec defaultBufSize) stderrLogger <-- if lc_stderr lc then Just <$> newFastLogger (LogStderr defaultBufSize) else pure Nothing+ if lc_stderr lc+ then Just <$> newFastLogger (LogStderr defaultBufSize)+ else pure Nothing tc <- newTimeCache timeFormat let lgrs = Loggers fileLogger stderrLogger tc writeIORef loggers lgrs
+ stack.yaml view
@@ -0,0 +1,1 @@+resolver: lts-7.5