Scaffolding updates

Addresses kazu-yamamoto/logger#44 and #791
This commit is contained in:
Michael Snoyman 2014-08-03 12:35:20 +03:00
parent c0ebb1624e
commit 970f81af15
6 changed files with 30 additions and 105 deletions

View File

@ -45,8 +45,7 @@ import Network.Wai.Middleware.RequestLogger
import qualified Network.Wai.Middleware.RequestLogger as RequestLogger import qualified Network.Wai.Middleware.RequestLogger as RequestLogger
import qualified Database.Persist import qualified Database.Persist
import Network.HTTP.Client.Conduit (newManager) import Network.HTTP.Client.Conduit (newManager)
import Control.Concurrent (forkIO, threadDelay) import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize)
import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize, flushLogStr)
import Network.Wai.Logger (clockDateCacher) import Network.Wai.Logger (clockDateCacher)
import Data.Default (def) import Data.Default (def)
import Yesod.Core.Types (loggerSet, Logger (Logger)) import Yesod.Core.Types (loggerSet, Logger (Logger))
@ -94,18 +93,7 @@ makeFoundation conf = do
p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf) p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf)
loggerSet' <- newStdoutLoggerSet defaultBufSize loggerSet' <- newStdoutLoggerSet defaultBufSize
(getter, updater) <- clockDateCacher (getter, _) <- clockDateCacher
-- If the Yesod logger (as opposed to the request logger middleware) is
-- used less than once a second on average, you may prefer to omit this
-- thread and use "(updater >> getter)" in place of "getter" below. That
-- would update the cache every time it is used, instead of every second.
let updateLoop = do
threadDelay 1000000
updater
flushLogStr loggerSet'
updateLoop
_ <- forkIO updateLoop
let logger = Yesod.Core.Types.Logger loggerSet' getter let logger = Yesod.Core.Types.Logger loggerSet' getter
foundation = App conf s p manager dbconf logger foundation = App conf s p manager dbconf logger
@ -442,11 +430,11 @@ library
, directory >= 1.1 && < 1.3 , directory >= 1.1 && < 1.3
, warp >= 3.0 && < 3.1 , warp >= 3.0 && < 3.1
, data-default , data-default
, aeson >= 0.6 && < 0.8 , aeson >= 0.6 && < 0.9
, conduit >= 1.0 && < 2.0 , conduit >= 1.0 && < 2.0
, monad-logger >= 0.3 && < 0.4 , monad-logger >= 0.3 && < 0.4
, fast-logger >= 2.1.4 && < 2.2 , fast-logger >= 2.2 && < 2.3
, wai-logger >= 2.1 && < 2.2 , wai-logger >= 2.2 && < 2.3
executable PROJECTNAME executable PROJECTNAME
if flag(library-only) if flag(library-only)

View File

@ -47,8 +47,7 @@ import qualified Database.Persist
import Database.Persist.Sql (runMigration) import Database.Persist.Sql (runMigration)
import Network.HTTP.Client.Conduit (newManager) import Network.HTTP.Client.Conduit (newManager)
import Control.Monad.Logger (runLoggingT) import Control.Monad.Logger (runLoggingT)
import Control.Concurrent (forkIO, threadDelay) import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize)
import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize, flushLogStr)
import Network.Wai.Logger (clockDateCacher) import Network.Wai.Logger (clockDateCacher)
import Data.Default (def) import Data.Default (def)
import Yesod.Core.Types (loggerSet, Logger (Logger)) import Yesod.Core.Types (loggerSet, Logger (Logger))
@ -96,18 +95,7 @@ makeFoundation conf = do
p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf) p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf)
loggerSet' <- newStdoutLoggerSet defaultBufSize loggerSet' <- newStdoutLoggerSet defaultBufSize
(getter, updater) <- clockDateCacher (getter, _) <- clockDateCacher
-- If the Yesod logger (as opposed to the request logger middleware) is
-- used less than once a second on average, you may prefer to omit this
-- thread and use "(updater >> getter)" in place of "getter" below. That
-- would update the cache every time it is used, instead of every second.
let updateLoop = do
threadDelay 1000000
updater
flushLogStr loggerSet'
updateLoop
_ <- forkIO updateLoop
let logger = Yesod.Core.Types.Logger loggerSet' getter let logger = Yesod.Core.Types.Logger loggerSet' getter
foundation = App conf s p manager dbconf logger foundation = App conf s p manager dbconf logger
@ -446,11 +434,11 @@ library
, directory >= 1.1 && < 1.3 , directory >= 1.1 && < 1.3
, warp >= 3.0 && < 3.1 , warp >= 3.0 && < 3.1
, data-default , data-default
, aeson >= 0.6 && < 0.8 , aeson >= 0.6 && < 0.9
, conduit >= 1.0 && < 2.0 , conduit >= 1.0 && < 2.0
, monad-logger >= 0.3 && < 0.4 , monad-logger >= 0.3 && < 0.4
, fast-logger >= 2.1.4 && < 2.2 , fast-logger >= 2.2 && < 2.3
, wai-logger >= 2.1 && < 2.2 , wai-logger >= 2.2 && < 2.3
executable PROJECTNAME executable PROJECTNAME
if flag(library-only) if flag(library-only)

View File

@ -49,8 +49,7 @@ import Database.Persist.Sql (runMigration)
import Network.HTTP.Client.Conduit (newManager) import Network.HTTP.Client.Conduit (newManager)
import Yesod.Fay (getFaySite) import Yesod.Fay (getFaySite)
import Control.Monad.Logger (runLoggingT) import Control.Monad.Logger (runLoggingT)
import Control.Concurrent (forkIO, threadDelay) import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize)
import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize, flushLogStr)
import Network.Wai.Logger (clockDateCacher) import Network.Wai.Logger (clockDateCacher)
import Data.Default (def) import Data.Default (def)
import Yesod.Core.Types (loggerSet, Logger (Logger)) import Yesod.Core.Types (loggerSet, Logger (Logger))
@ -99,18 +98,7 @@ makeFoundation conf = do
p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf) p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf)
loggerSet' <- newStdoutLoggerSet defaultBufSize loggerSet' <- newStdoutLoggerSet defaultBufSize
(getter, updater) <- clockDateCacher (getter, _) <- clockDateCacher
-- If the Yesod logger (as opposed to the request logger middleware) is
-- used less than once a second on average, you may prefer to omit this
-- thread and use "(updater >> getter)" in place of "getter" below. That
-- would update the cache every time it is used, instead of every second.
let updateLoop = do
threadDelay 1000000
updater
flushLogStr loggerSet'
updateLoop
_ <- forkIO updateLoop
let logger = Yesod.Core.Types.Logger loggerSet' getter let logger = Yesod.Core.Types.Logger loggerSet' getter
foundation = App conf s p manager dbconf onCommand logger foundation = App conf s p manager dbconf onCommand logger
@ -483,11 +471,11 @@ library
, directory >= 1.1 && < 1.3 , directory >= 1.1 && < 1.3
, warp >= 3.0 && < 3.1 , warp >= 3.0 && < 3.1
, data-default , data-default
, aeson >= 0.6 && < 0.8 , aeson >= 0.6 && < 0.9
, conduit >= 1.0 && < 2.0 , conduit >= 1.0 && < 2.0
, monad-logger >= 0.3 && < 0.4 , monad-logger >= 0.3 && < 0.4
, fast-logger >= 2.1.4 && < 2.2 , fast-logger >= 2.2 && < 2.3
, wai-logger >= 2.1 && < 2.2 , wai-logger >= 2.2 && < 2.3
executable PROJECTNAME executable PROJECTNAME
if flag(library-only) if flag(library-only)

View File

@ -47,8 +47,7 @@ import qualified Database.Persist
import Database.Persist.Sql (runMigration) import Database.Persist.Sql (runMigration)
import Network.HTTP.Client.Conduit (newManager) import Network.HTTP.Client.Conduit (newManager)
import Control.Monad.Logger (runLoggingT) import Control.Monad.Logger (runLoggingT)
import Control.Concurrent (forkIO, threadDelay) import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize)
import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize, flushLogStr)
import Network.Wai.Logger (clockDateCacher) import Network.Wai.Logger (clockDateCacher)
import Data.Default (def) import Data.Default (def)
import Yesod.Core.Types (loggerSet, Logger (Logger)) import Yesod.Core.Types (loggerSet, Logger (Logger))
@ -96,18 +95,7 @@ makeFoundation conf = do
p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf) p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf)
loggerSet' <- newStdoutLoggerSet defaultBufSize loggerSet' <- newStdoutLoggerSet defaultBufSize
(getter, updater) <- clockDateCacher (getter, _) <- clockDateCacher
-- If the Yesod logger (as opposed to the request logger middleware) is
-- used less than once a second on average, you may prefer to omit this
-- thread and use "(updater >> getter)" in place of "getter" below. That
-- would update the cache every time it is used, instead of every second.
let updateLoop = do
threadDelay 1000000
updater
flushLogStr loggerSet'
updateLoop
_ <- forkIO updateLoop
let logger = Yesod.Core.Types.Logger loggerSet' getter let logger = Yesod.Core.Types.Logger loggerSet' getter
foundation = App conf s p manager dbconf logger foundation = App conf s p manager dbconf logger
@ -446,11 +434,11 @@ library
, directory >= 1.1 && < 1.3 , directory >= 1.1 && < 1.3
, warp >= 3.0 && < 3.1 , warp >= 3.0 && < 3.1
, data-default , data-default
, aeson >= 0.6 && < 0.8 , aeson >= 0.6 && < 0.9
, conduit >= 1.0 && < 2.0 , conduit >= 1.0 && < 2.0
, monad-logger >= 0.3 && < 0.4 , monad-logger >= 0.3 && < 0.4
, fast-logger >= 2.1.4 && < 2.2 , fast-logger >= 2.2 && < 2.3
, wai-logger >= 2.1 && < 2.2 , wai-logger >= 2.2 && < 2.3
executable PROJECTNAME executable PROJECTNAME
if flag(library-only) if flag(library-only)

View File

@ -42,8 +42,7 @@ import Network.Wai.Middleware.RequestLogger
) )
import qualified Network.Wai.Middleware.RequestLogger as RequestLogger import qualified Network.Wai.Middleware.RequestLogger as RequestLogger
import Network.HTTP.Client.Conduit (newManager) import Network.HTTP.Client.Conduit (newManager)
import Control.Concurrent (forkIO, threadDelay) import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize)
import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize, flushLogStr)
import Network.Wai.Logger (clockDateCacher) import Network.Wai.Logger (clockDateCacher)
import Data.Default (def) import Data.Default (def)
import Yesod.Core.Types (loggerSet, Logger (Logger)) import Yesod.Core.Types (loggerSet, Logger (Logger))
@ -87,18 +86,7 @@ makeFoundation conf = do
s <- staticSite s <- staticSite
loggerSet' <- newStdoutLoggerSet defaultBufSize loggerSet' <- newStdoutLoggerSet defaultBufSize
(getter, updater) <- clockDateCacher (getter, _) <- clockDateCacher
-- If the Yesod logger (as opposed to the request logger middleware) is
-- used less than once a second on average, you may prefer to omit this
-- thread and use "(updater >> getter)" in place of "getter" below. That
-- would update the cache every time it is used, instead of every second.
let updateLoop = do
threadDelay 1000000
updater
flushLogStr loggerSet'
updateLoop
_ <- forkIO updateLoop
let logger = Yesod.Core.Types.Logger loggerSet' getter let logger = Yesod.Core.Types.Logger loggerSet' getter
foundation = App conf s manager logger foundation = App conf s manager logger
@ -120,8 +108,6 @@ module Foundation where
import Prelude import Prelude
import Yesod import Yesod
import Yesod.Static import Yesod.Static
import Yesod.Auth
import Yesod.Auth.BrowserId
import Yesod.Default.Config import Yesod.Default.Config
import Yesod.Default.Util (addStaticContentExternal) import Yesod.Default.Util (addStaticContentExternal)
import Network.HTTP.Client.Conduit (Manager, HasHttpManager (getHttpManager)) import Network.HTTP.Client.Conduit (Manager, HasHttpManager (getHttpManager))
@ -197,7 +183,6 @@ instance Yesod App where
urlRenderOverride _ _ = Nothing urlRenderOverride _ _ = Nothing
-- Routes not requiring authenitcation. -- Routes not requiring authenitcation.
isAuthorized (AuthR _) _ = return Authorized
isAuthorized FaviconR _ = return Authorized isAuthorized FaviconR _ = return Authorized
isAuthorized RobotsR _ = return Authorized isAuthorized RobotsR _ = return Authorized
-- Default to Authorized for now. -- Default to Authorized for now.
@ -373,11 +358,11 @@ library
, directory >= 1.1 && < 1.3 , directory >= 1.1 && < 1.3
, warp >= 3.0 && < 3.1 , warp >= 3.0 && < 3.1
, data-default , data-default
, aeson >= 0.6 && < 0.8 , aeson >= 0.6 && < 0.9
, conduit >= 1.0 && < 2.0 , conduit >= 1.0 && < 2.0
, monad-logger >= 0.3 && < 0.4 , monad-logger >= 0.3 && < 0.4
, fast-logger >= 2.1.4 && < 2.2 , fast-logger >= 2.2 && < 2.3
, wai-logger >= 2.1 && < 2.2 , wai-logger >= 2.2 && < 2.3
executable PROJECTNAME executable PROJECTNAME
if flag(library-only) if flag(library-only)

View File

@ -47,8 +47,7 @@ import qualified Database.Persist
import Database.Persist.Sql (runMigration) import Database.Persist.Sql (runMigration)
import Network.HTTP.Client.Conduit (newManager) import Network.HTTP.Client.Conduit (newManager)
import Control.Monad.Logger (runLoggingT) import Control.Monad.Logger (runLoggingT)
import Control.Concurrent (forkIO, threadDelay) import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize)
import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize, flushLogStr)
import Network.Wai.Logger (clockDateCacher) import Network.Wai.Logger (clockDateCacher)
import Data.Default (def) import Data.Default (def)
import Yesod.Core.Types (loggerSet, Logger (Logger)) import Yesod.Core.Types (loggerSet, Logger (Logger))
@ -96,18 +95,7 @@ makeFoundation conf = do
p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf) p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf)
loggerSet' <- newStdoutLoggerSet defaultBufSize loggerSet' <- newStdoutLoggerSet defaultBufSize
(getter, updater) <- clockDateCacher (getter, _) <- clockDateCacher
-- If the Yesod logger (as opposed to the request logger middleware) is
-- used less than once a second on average, you may prefer to omit this
-- thread and use "(updater >> getter)" in place of "getter" below. That
-- would update the cache every time it is used, instead of every second.
let updateLoop = do
threadDelay 1000000
updater
flushLogStr loggerSet'
updateLoop
_ <- forkIO updateLoop
let logger = Yesod.Core.Types.Logger loggerSet' getter let logger = Yesod.Core.Types.Logger loggerSet' getter
foundation = App conf s p manager dbconf logger foundation = App conf s p manager dbconf logger
@ -446,11 +434,11 @@ library
, directory >= 1.1 && < 1.3 , directory >= 1.1 && < 1.3
, warp >= 3.0 && < 3.1 , warp >= 3.0 && < 3.1
, data-default , data-default
, aeson >= 0.6 && < 0.8 , aeson >= 0.6 && < 0.9
, conduit >= 1.0 && < 2.0 , conduit >= 1.0 && < 2.0
, monad-logger >= 0.3 && < 0.4 , monad-logger >= 0.3 && < 0.4
, fast-logger >= 2.1.4 && < 2.2 , fast-logger >= 2.2 && < 2.3
, wai-logger >= 2.1 && < 2.2 , wai-logger >= 2.2 && < 2.3
executable PROJECTNAME executable PROJECTNAME
if flag(library-only) if flag(library-only)