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/Logger.hs | |
parent | 86cb38c936da30910700c58353a5e716fa94e83c (diff) | |
download | keysafe-0f0aa21ea11f6eae368326b178d4c3eaf5cc5186.tar.gz |
add date to logger
Diffstat (limited to 'HTTP/Logger.hs')
-rw-r--r-- | HTTP/Logger.hs | 21 |
1 files changed, 13 insertions, 8 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") |