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