take logging out of default and into scaffold

requires the DEVELOPMENT CPP define to choose the logger
This commit is contained in:
Greg Weber 2011-12-26 00:32:36 -03:00
parent 144e174fe8
commit 1840eec7dc
2 changed files with 12 additions and 7 deletions

View File

@ -9,11 +9,10 @@ module Yesod.Default.Main
import Yesod.Core hiding (AppConfig (..)) import Yesod.Core hiding (AppConfig (..))
import Yesod.Default.Config import Yesod.Default.Config
import Yesod.Logger (Logger, makeDefaultLogger, logString, logBS, flushLogger) import Yesod.Logger (Logger, makeDefaultLogger, logString, flushLogger)
import Network.Wai (Application) import Network.Wai (Application)
import Network.Wai.Handler.Warp import Network.Wai.Handler.Warp
(runSettings, defaultSettings, settingsPort, settingsHost) (runSettings, defaultSettings, settingsPort, settingsHost)
import Network.Wai.Middleware.RequestLogger (logHandle)
import System.Directory (doesDirectoryExist, removeDirectoryRecursive) import System.Directory (doesDirectoryExist, removeDirectoryRecursive)
import Network.Wai.Middleware.Gzip (gzip', GzipFiles (GzipCacheFolder), gzipFiles, def) import Network.Wai.Middleware.Gzip (gzip', GzipFiles (GzipCacheFolder), gzipFiles, def)
import Network.Wai.Middleware.Autohead (autohead) import Network.Wai.Middleware.Autohead (autohead)
@ -81,6 +80,7 @@ defaultRunner f h = do
#endif #endif
where where
middlewares = gzip' gset . jsonp . autohead middlewares = gzip' gset . jsonp . autohead
gset = def { gzipFiles = GzipCacheFolder staticCache } gset = def { gzipFiles = GzipCacheFolder staticCache }
staticCache = ".static-cache" staticCache = ".static-cache"
@ -109,7 +109,5 @@ defaultDevelAppWith load withSite f = do
logger <- makeDefaultLogger logger <- makeDefaultLogger
let p = appPort conf let p = appPort conf
logString logger $ "Devel application launched, listening on port " ++ show p logString logger $ "Devel application launched, listening on port " ++ show p
withSite conf logger $ \app -> f (p, logHandle (logToHandle logger) app) withSite conf logger $ \app -> f (p, app)
flushLogger logger flushLogger logger
where
logToHandle logger msg = logBS logger msg >> flushLogger logger

View File

@ -11,8 +11,9 @@ import Yesod.Auth
import Yesod.Default.Config import Yesod.Default.Config
import Yesod.Default.Main import Yesod.Default.Main
import Yesod.Default.Handlers import Yesod.Default.Handlers
import Yesod.Logger (Logger) import Yesod.Logger (Logger, logBS, flushLogger)
import Data.Dynamic (Dynamic, toDyn) import Data.Dynamic (Dynamic, toDyn)
import Network.Wai.Middleware.RequestLogger (logHandleDev, logBS, logStdout)
import qualified Database.Persist.Base~importMigration~ import qualified Database.Persist.Base~importMigration~
-- Import all relevant handler modules here. -- Import all relevant handler modules here.
@ -34,7 +35,13 @@ with~sitearg~ conf logger f = do
$ either error return . Database.Persist.Base.loadConfig $ either error return . Database.Persist.Base.loadConfig
Database.Persist.Base.withPool (dbconf :: Settings.PersistConfig) $ \p -> do~runMigration~ Database.Persist.Base.withPool (dbconf :: Settings.PersistConfig) $ \p -> do~runMigration~
let h = ~sitearg~ conf logger s p let h = ~sitearg~ conf logger s p
defaultRunner f h defaultRunner (f . logWare) h
where
#ifdef DEVELOPMENT
logWare = logHandleDev (\msg -> logBS logger msg » flushLogger logger)
#else
logWare = logStdout
#endif
-- for yesod devel -- for yesod devel
withDevelAppPort :: Dynamic withDevelAppPort :: Dynamic