diff options
author | Joey Hess <joeyh@joeyh.name> | 2016-09-13 17:52:07 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2016-09-13 17:52:07 -0400 |
commit | 0f0aa21ea11f6eae368326b178d4c3eaf5cc5186 (patch) | |
tree | 24e52fd9b6d054e85553df5cadfdc4fc5d5df83b /HTTP | |
parent | 86cb38c936da30910700c58353a5e716fa94e83c (diff) | |
download | keysafe-0f0aa21ea11f6eae368326b178d4c3eaf5cc5186.tar.gz |
add date to logger
Diffstat (limited to 'HTTP')
-rw-r--r-- | HTTP/Logger.hs | 21 | ||||
-rw-r--r-- | HTTP/Server.hs | 3 |
2 files changed, 14 insertions, 10 deletions
diff --git a/HTTP/Logger.hs b/HTTP/Logger.hs index 2758c37..0254017 100644 --- a/HTTP/Logger.hs +++ b/HTTP/Logger.hs @@ -3,17 +3,22 @@ - Licensed under the GNU AGPL version 3 or higher. -} +{-# LANGUAGE OverloadedStrings #-} + module HTTP.Logger where import System.Log.FastLogger -import Data.String +import Data.Monoid +import Prelude -data Logger = Logger LoggerSet LoggerSet +data Logger = Logger TimedFastLogger TimedFastLogger -newLogger :: IO Logger -newLogger = Logger - <$> newStdoutLoggerSet defaultBufSize - <*> newStderrLoggerSet defaultBufSize +withLogger :: (Logger -> IO a) -> IO a +withLogger a = do + t <- newTimeCache "%c" + withTimedFastLogger t (LogStdout defaultBufSize) $ \stdout -> + withTimedFastLogger t (LogStderr defaultBufSize) $ \stderr -> + a (Logger stdout stderr) logStdout :: Logger -> String -> IO () logStdout (Logger l _) = sendLogger l @@ -21,5 +26,5 @@ logStdout (Logger l _) = sendLogger l logStderr :: Logger -> String -> IO () logStderr (Logger _ l) = sendLogger l -sendLogger :: LoggerSet -> String -> IO () -sendLogger l s = pushLogStrLn l (fromString s) +sendLogger :: TimedFastLogger -> String -> IO () +sendLogger l s = l (\t -> "[" <> toLogStr t <> "] " <> toLogStr s <> "\n") diff --git a/HTTP/Server.hs b/HTTP/Server.hs index e2165eb..c36a6cc 100644 --- a/HTTP/Server.hs +++ b/HTTP/Server.hs @@ -35,8 +35,7 @@ data ServerState = ServerState } newServerState :: Maybe LocalStorageDirectory -> ServerConfig -> IO ServerState -newServerState d cfg = do - l <- newLogger +newServerState d cfg = withLogger $ \l -> ServerState <$> newEmptyTMVarIO <*> pure d |