diff options
Diffstat (limited to 'HTTP/Logger.hs')
-rw-r--r-- | HTTP/Logger.hs | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/HTTP/Logger.hs b/HTTP/Logger.hs index 0254017..2758c37 100644 --- a/HTTP/Logger.hs +++ b/HTTP/Logger.hs @@ -3,22 +3,17 @@ - Licensed under the GNU AGPL version 3 or higher. -} -{-# LANGUAGE OverloadedStrings #-} - module HTTP.Logger where import System.Log.FastLogger -import Data.Monoid -import Prelude +import Data.String -data Logger = Logger TimedFastLogger TimedFastLogger +data Logger = Logger LoggerSet LoggerSet -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) +newLogger :: IO Logger +newLogger = Logger + <$> newStdoutLoggerSet defaultBufSize + <*> newStderrLoggerSet defaultBufSize logStdout :: Logger -> String -> IO () logStdout (Logger l _) = sendLogger l @@ -26,5 +21,5 @@ logStdout (Logger l _) = sendLogger l logStderr :: Logger -> String -> IO () logStderr (Logger _ l) = sendLogger l -sendLogger :: TimedFastLogger -> String -> IO () -sendLogger l s = l (\t -> "[" <> toLogStr t <> "] " <> toLogStr s <> "\n") +sendLogger :: LoggerSet -> String -> IO () +sendLogger l s = pushLogStrLn l (fromString s) |