fast-logger 2.0
This commit is contained in:
parent
b18e43c050
commit
c670c54ba4
@ -41,8 +41,9 @@ import Network.Wai.Parse (lbsBackEnd,
|
||||
tempFileBackEnd)
|
||||
import System.IO (stdout)
|
||||
#if MIN_VERSION_fast_logger(2, 0, 0)
|
||||
import Network.Wai.Logger (ZonedDate)
|
||||
import Network.Wai.Logger (ZonedDate, clockDateCacher)
|
||||
import System.Log.FastLogger
|
||||
import qualified GHC.IO.FD
|
||||
#else
|
||||
import System.Log.FastLogger.Date (ZonedDate)
|
||||
import System.Log.FastLogger (LogStr (..), Logger,
|
||||
@ -215,7 +216,14 @@ class RenderRoute site => Yesod site where
|
||||
--
|
||||
-- Default: Sends to stdout and automatically flushes on each write.
|
||||
makeLogger :: site -> IO Logger
|
||||
#if MIN_VERSION_fast_logger(2, 0, 0)
|
||||
makeLogger _ = do
|
||||
loggerSet <- newLoggerSet defaultBufSize GHC.IO.FD.stdout
|
||||
(getter, _) <- clockDateCacher
|
||||
return $! Logger loggerSet getter
|
||||
#else
|
||||
makeLogger _ = mkLogger True stdout
|
||||
#endif
|
||||
|
||||
-- | Send a message to the @Logger@ provided by @getLogger@.
|
||||
--
|
||||
@ -529,6 +537,30 @@ asyncHelper render scripts jscript jsLoc =
|
||||
Nothing -> Nothing
|
||||
Just j -> Just $ jelper j
|
||||
|
||||
#if MIN_VERSION_fast_logger(2, 0, 0)
|
||||
formatLogMessage :: IO ZonedDate
|
||||
-> Loc
|
||||
-> LogSource
|
||||
-> LogLevel
|
||||
-> LogStr -- ^ message
|
||||
-> IO LogStr
|
||||
formatLogMessage getdate loc src level msg = do
|
||||
now <- getdate
|
||||
return $
|
||||
toLogStr now `mappend`
|
||||
" [" `mappend`
|
||||
(case level of
|
||||
LevelOther t -> toLogStr t
|
||||
_ -> toLogStr $ drop 5 $ show level) `mappend`
|
||||
(if T.null src
|
||||
then mempty
|
||||
else "#" `mappend` toLogStr src) `mappend`
|
||||
"] " `mappend`
|
||||
msg `mappend`
|
||||
" @(" `mappend`
|
||||
toLogStr (fileLocationToString loc) `mappend`
|
||||
")\n"
|
||||
#else
|
||||
formatLogMessage :: IO ZonedDate
|
||||
-> Loc
|
||||
-> LogSource
|
||||
@ -554,7 +586,7 @@ formatLogMessage getdate loc src level msg = do
|
||||
, LS $ fileLocationToString loc
|
||||
, LB ")\n"
|
||||
]
|
||||
|
||||
#endif
|
||||
|
||||
-- | Customize the cookies used by the session backend. You may
|
||||
-- use this function on your definition of 'makeSessionBackend'.
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
{-# LANGUAGE FlexibleInstances #-}
|
||||
{-# LANGUAGE MultiParamTypeClasses #-}
|
||||
{-# LANGUAGE CPP #-}
|
||||
module Yesod.Core.Dispatch
|
||||
( -- * Quasi-quoted routing
|
||||
parseRoutes
|
||||
@ -163,7 +164,11 @@ warp port site = toWaiApp site >>= Network.Wai.Handler.Warp.runSettings
|
||||
mkDefaultMiddlewares :: Logger -> IO W.Middleware
|
||||
mkDefaultMiddlewares logger = do
|
||||
logWare <- mkRequestLogger def
|
||||
#if MIN_VERSION_fast_logger(2, 0, 0)
|
||||
{ destination = Network.Wai.Middleware.RequestLogger.Logger $ loggerSet logger
|
||||
#else
|
||||
{ destination = Logger logger
|
||||
#endif
|
||||
, outputFormat = Apache FromSocket
|
||||
}
|
||||
return $ logWare
|
||||
|
||||
@ -36,7 +36,9 @@ import Network.Wai
|
||||
import Network.Wai.Internal
|
||||
#endif
|
||||
import Prelude hiding (catch)
|
||||
#if !MIN_VERSION_fast_logger(2, 0, 0)
|
||||
import System.Log.FastLogger (Logger)
|
||||
#endif
|
||||
import System.Log.FastLogger (LogStr, toLogStr)
|
||||
import System.Random (newStdGen)
|
||||
import Yesod.Core.Content
|
||||
|
||||
@ -48,7 +48,7 @@ import Network.Wai (FilePart,
|
||||
import qualified Network.Wai as W
|
||||
import qualified Network.Wai.Parse as NWP
|
||||
#if MIN_VERSION_fast_logger(2, 0, 0)
|
||||
import System.Log.FastLogger (LogStr, LoggerSet, toLogStr)
|
||||
import System.Log.FastLogger (LogStr, LoggerSet, toLogStr, pushLogStr)
|
||||
import Network.Wai.Logger (DateCacheGetter)
|
||||
#else
|
||||
import System.Log.FastLogger (LogStr, Logger, toLogStr)
|
||||
@ -453,5 +453,11 @@ instance ParseRoute WaiSubsite where
|
||||
parseRoute (x, y) = Just $ WaiSubsiteRoute x y
|
||||
|
||||
#if MIN_VERSION_fast_logger(2, 0, 0)
|
||||
data Logger = Logger !LoggerSet !DateCacheGetter
|
||||
data Logger = Logger
|
||||
{ loggerSet :: !LoggerSet
|
||||
, loggerDate :: !DateCacheGetter
|
||||
}
|
||||
|
||||
loggerPutStr :: Logger -> LogStr -> IO ()
|
||||
loggerPutStr (Logger ls _) = pushLogStr ls
|
||||
#endif
|
||||
|
||||
Loading…
Reference in New Issue
Block a user