diff --git a/src/System/Logger.hs b/src/System/Logger.hs index fd3559c78504f283ffae4eab431a7a5a19fea45e..8debf5cd01a8702e4be9546f78f27e0132e6bfe3 100644 --- a/src/System/Logger.hs +++ b/src/System/Logger.hs @@ -40,6 +40,7 @@ module System.Logger , DateFormat (..) , Renderer , iso8601UTC + , iso8601 -- * Core API , new @@ -137,7 +138,10 @@ new s = liftIO $ do fn (Path p) = flip FL.newFileLoggerSet p mkGetDate Nothing = return (return id) - mkGetDate (Just f) = return (msg . (display f) <$> getUnixTime) + mkGetDate (Just f) = do + t <- getUnixTime + bs <- display f t + return $ return $ msg bs mergeWith m e = Map.fromList (readNote "Invalid LOG_LEVEL_MAP" e) `Map.union` m @@ -202,7 +206,7 @@ putMsg g l f = liftIO $ do let r = renderer $ settings g let x = delimiter $ settings g let s = nameMsg $ settings g - let df = fromMaybe iso8601UTC . format $ settings g + let df = fromMaybe iso8601 . format $ settings g let ll = logLevel $ settings g let m = render (r x df ll) (d . lmsg l . s . f) FL.pushLogStr (logger g) (FL.toLogStr m) diff --git a/src/System/Logger/Class.hs b/src/System/Logger/Class.hs index 7394c197c298750dd8577780b2cf7c8d262cd632..05709e44b3cd830cdc33c53fc6b78f01ae3641bc 100644 --- a/src/System/Logger/Class.hs +++ b/src/System/Logger/Class.hs @@ -30,6 +30,7 @@ module System.Logger.Class , L.DateFormat , L.iso8601UTC + , L.iso8601 , L.Logger , L.new @@ -67,4 +68,3 @@ info = System.Logger.Class.log Info warn = System.Logger.Class.log Warn err = System.Logger.Class.log Error fatal = System.Logger.Class.log Fatal - diff --git a/src/System/Logger/Settings.hs b/src/System/Logger/Settings.hs index 1b4587740f6d3f35404ba6b013f272da29e359c6..f7702d6b41ad7c34878eb6fe39f140963870625a 100644 --- a/src/System/Logger/Settings.hs +++ b/src/System/Logger/Settings.hs @@ -37,6 +37,7 @@ module System.Logger.Settings , readEnvironment , setReadEnvironment , iso8601UTC + , iso8601 ) where import Data.String @@ -172,15 +173,19 @@ data Output deriving (Eq, Ord, Show) newtype DateFormat = DateFormat - { display :: UnixTime -> ByteString + { display :: UnixTime -> IO ByteString } instance IsString DateFormat where - fromString = DateFormat . formatUnixTimeGMT . pack + fromString = DateFormat . formatUnixTime . pack --- | ISO 8601 date-time format. +-- | ISO 8601 date-time format, local time. +iso8601 :: DateFormat +iso8601 = "%Y-%0m-%0dT%0H:%0M:%0S" + +-- | ISO 8601 date-time format, UTC time. iso8601UTC :: DateFormat -iso8601UTC = "%Y-%0m-%0dT%0H:%0M:%0SZ" +iso8601UTC = DateFormat $ return . formatUnixTimeGMT (pack "%Y-%0m-%0dT%0H:%0M:%0SZ") -- | Take a custom separator, date format, log level of the event, and render -- a list of log fields or messages into a builder. @@ -209,7 +214,7 @@ defSettings = Settings Debug Map.empty StdOut - (Just iso8601UTC) + (Just iso8601) ", " defaultBufSize Nothing diff --git a/tinylog.cabal b/tinylog.cabal index e8c25fddf0a692961c5b353ce883e846cf95c13d..12cee84e82fb9e60bb877cbee45a6ab68a8dcb45 100644 --- a/tinylog.cabal +++ b/tinylog.cabal @@ -1,5 +1,5 @@ name: tinylog -version: 0.15.1 +version: 0.15.2 synopsis: Simplistic logging using fast-logger. author: Toralf Wittner maintainer: Toralf Wittner <tw@dtex.org>