From a49750ffb2923d40e834cec77a9900b4167c2ea5 Mon Sep 17 00:00:00 2001 From: Yuanle Song <sylecn@gmail.com> Date: Mon, 8 Apr 2024 19:50:30 +0800 Subject: [PATCH] v0.15.2 support log local time instead of just UTC time. --- src/System/Logger.hs | 8 ++++++-- src/System/Logger/Class.hs | 2 +- src/System/Logger/Settings.hs | 15 ++++++++++----- tinylog.cabal | 2 +- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/System/Logger.hs b/src/System/Logger.hs index fd3559c..8debf5c 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 7394c19..05709e4 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 1b45877..f7702d6 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 e8c25fd..12cee84 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> -- GitLab