simple-logger 0.0.3 → 0.0.4
raw patch · 3 files changed
+42/−7 lines, 3 files
Files
- package.yaml +1/−1
- simple-logger.cabal +1/−1
- src/Control/Logger/Simple.hs +40/−5
package.yaml view
@@ -1,5 +1,5 @@ name: simple-logger-version: 0.0.3+version: 0.0.4 synopsis: A very simple but efficient logging framework description: A very simple but efficient logging framework category: Logging
simple-logger.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack name: simple-logger-version: 0.0.3+version: 0.0.4 synopsis: A very simple but efficient logging framework description: A very simple but efficient logging framework category: Logging
src/Control/Logger/Simple.hs view
@@ -6,6 +6,7 @@ , setLogLevel, LogLevel(..) , logTrace, logDebug, logInfo, logNote, logWarn, logError , logFail+ , pureTrace, pureDebug, pureInfo, pureNote, pureWarn, pureError , showText, (<>) ) where@@ -27,15 +28,15 @@ data Loggers = Loggers- { l_file :: Maybe (FastLogger, IO ())- , l_stderr :: Maybe (FastLogger, IO ())- , l_timeCache :: IO FormattedTime+ { l_file :: !(Maybe (FastLogger, IO ()))+ , l_stderr :: !(Maybe (FastLogger, IO ()))+ , l_timeCache :: !(IO FormattedTime) } data LogConfig = LogConfig- { lc_file :: Maybe FilePath- , lc_stderr :: Bool+ { lc_file :: !(Maybe FilePath)+ , lc_stderr :: !Bool } data LogLevel@@ -50,21 +51,27 @@ showText :: Show a => a -> T.Text showText = T.pack . show +-- | Log with 'LogTrace' log level logTrace :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m () logTrace = doLog LogTrace ?callStack +-- | Log with 'LogDebug' log level logDebug :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m () logDebug = doLog LogDebug ?callStack +-- | Log with 'LogInfo' log level logInfo :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m () logInfo = doLog LogInfo ?callStack +-- | Log with 'LogNote' log level logNote :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m () logNote = doLog LogNote ?callStack +-- | Log with 'LogWarn' log level logWarn :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m () logWarn = doLog LogWarn ?callStack +-- | Log with 'LogError' log level logError :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m () logError = doLog LogError ?callStack @@ -73,6 +80,34 @@ logFail t = do doLog LogError ?callStack t fail (T.unpack t)++-- | Log with 'LogTrace' level when the given expression is evaluated+pureTrace :: (?callStack :: GHC.CallStack) => T.Text -> a -> a+pureTrace = doPureLog LogTrace ?callStack++-- | Log with 'LogDebug' level when the given expression is evaluated+pureDebug :: (?callStack :: GHC.CallStack) => T.Text -> a -> a+pureDebug = doPureLog LogDebug ?callStack++-- | Log with 'LogInfo' level when the given expression is evaluated+pureInfo :: (?callStack :: GHC.CallStack) => T.Text -> a -> a+pureInfo = doPureLog LogInfo ?callStack++-- | Log with 'LogNote' level when the given expression is evaluated+pureNote :: (?callStack :: GHC.CallStack) => T.Text -> a -> a+pureNote = doPureLog LogNote ?callStack++-- | Log with 'LogWarn' level when the given expression is evaluated+pureWarn :: (?callStack :: GHC.CallStack) => T.Text -> a -> a+pureWarn = doPureLog LogWarn ?callStack++-- | Log with 'LogError' level when the given expression is evaluated+pureError :: (?callStack :: GHC.CallStack) => T.Text -> a -> a+pureError = doPureLog LogError ?callStack++doPureLog ::LogLevel -> GHC.CallStack -> T.Text -> a -> a+doPureLog ll cs txt expr =+ unsafePerformIO (doLog ll cs txt) `seq` expr doLog :: MonadIO m => LogLevel -> GHC.CallStack -> T.Text -> m () doLog ll cs txt =