diff --git a/yesod-bin/hsfiles/mongo.hsfiles b/yesod-bin/hsfiles/mongo.hsfiles index fb71aa5a..622a82a9 100644 --- a/yesod-bin/hsfiles/mongo.hsfiles +++ b/yesod-bin/hsfiles/mongo.hsfiles @@ -35,7 +35,8 @@ import Network.Wai.Middleware.RequestLogger import qualified Network.Wai.Middleware.RequestLogger as RequestLogger import qualified Database.Persist import Network.HTTP.Conduit (newManager, conduitManagerSettings) -import System.Log.FastLogger (newLoggerSet, defaultBufSize) +import Control.Concurrent (forkIO, threadDelay) +import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize) import Network.Wai.Logger (clockDateCacher) import Data.Default (def) import Yesod.Core.Types (loggerSet, Logger (Logger)) @@ -81,8 +82,18 @@ makeFoundation conf = do Database.Persist.applyEnv p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf) - loggerSet' <- newLoggerSet defaultBufSize Nothing - (getter, _) <- clockDateCacher + loggerSet' <- newStdoutLoggerSet defaultBufSize + (getter, updater) <- 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 + updateLoop + _ <- forkIO updateLoop let logger = Yesod.Core.Types.Logger loggerSet' getter foundation = App conf s p manager dbconf logger @@ -413,7 +424,7 @@ library , aeson >= 0.6 && < 0.8 , conduit >= 1.0 && < 2.0 , monad-logger >= 0.3 && < 0.4 - , fast-logger >= 2.1 && < 2.2 + , fast-logger >= 2.1.4 && < 2.2 , wai-logger >= 2.1 && < 2.2 executable PROJECTNAME diff --git a/yesod-bin/hsfiles/mysql.hsfiles b/yesod-bin/hsfiles/mysql.hsfiles index f0d01881..535b71c7 100644 --- a/yesod-bin/hsfiles/mysql.hsfiles +++ b/yesod-bin/hsfiles/mysql.hsfiles @@ -37,7 +37,8 @@ import qualified Database.Persist import Database.Persist.Sql (runMigration) import Network.HTTP.Conduit (newManager, conduitManagerSettings) import Control.Monad.Logger (runLoggingT) -import System.Log.FastLogger (newLoggerSet, defaultBufSize) +import Control.Concurrent (forkIO, threadDelay) +import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize) import Network.Wai.Logger (clockDateCacher) import Data.Default (def) import Yesod.Core.Types (loggerSet, Logger (Logger)) @@ -83,8 +84,18 @@ makeFoundation conf = do Database.Persist.applyEnv p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf) - loggerSet' <- newLoggerSet defaultBufSize Nothing - (getter, _) <- clockDateCacher + loggerSet' <- newStdoutLoggerSet defaultBufSize + (getter, updater) <- 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 + updateLoop + _ <- forkIO updateLoop let logger = Yesod.Core.Types.Logger loggerSet' getter foundation = App conf s p manager dbconf logger @@ -417,7 +428,7 @@ library , aeson >= 0.6 && < 0.8 , conduit >= 1.0 && < 2.0 , monad-logger >= 0.3 && < 0.4 - , fast-logger >= 2.1 && < 2.2 + , fast-logger >= 2.1.4 && < 2.2 , wai-logger >= 2.1 && < 2.2 executable PROJECTNAME diff --git a/yesod-bin/hsfiles/postgres-fay.hsfiles b/yesod-bin/hsfiles/postgres-fay.hsfiles index fa3439bc..1f8acaee 100644 --- a/yesod-bin/hsfiles/postgres-fay.hsfiles +++ b/yesod-bin/hsfiles/postgres-fay.hsfiles @@ -39,7 +39,8 @@ import Database.Persist.Sql (runMigration) import Network.HTTP.Conduit (newManager, conduitManagerSettings) import Yesod.Fay (getFaySite) import Control.Monad.Logger (runLoggingT) -import System.Log.FastLogger (newLoggerSet, defaultBufSize) +import Control.Concurrent (forkIO, threadDelay) +import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize) import Network.Wai.Logger (clockDateCacher) import Data.Default (def) import Yesod.Core.Types (loggerSet, Logger (Logger)) @@ -86,8 +87,18 @@ makeFoundation conf = do Database.Persist.applyEnv p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf) - loggerSet' <- newLoggerSet defaultBufSize Nothing - (getter, _) <- clockDateCacher + loggerSet' <- newStdoutLoggerSet defaultBufSize + (getter, updater) <- 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 + updateLoop + _ <- forkIO updateLoop let logger = Yesod.Core.Types.Logger loggerSet' getter foundation = App conf s p manager dbconf onCommand logger @@ -454,7 +465,7 @@ library , aeson >= 0.6 && < 0.8 , conduit >= 1.0 && < 2.0 , monad-logger >= 0.3 && < 0.4 - , fast-logger >= 2.1 && < 2.2 + , fast-logger >= 2.1.4 && < 2.2 , wai-logger >= 2.1 && < 2.2 executable PROJECTNAME diff --git a/yesod-bin/hsfiles/postgres.hsfiles b/yesod-bin/hsfiles/postgres.hsfiles index f3469ebc..24d9ff38 100644 --- a/yesod-bin/hsfiles/postgres.hsfiles +++ b/yesod-bin/hsfiles/postgres.hsfiles @@ -37,7 +37,8 @@ import qualified Database.Persist import Database.Persist.Sql (runMigration) import Network.HTTP.Conduit (newManager, conduitManagerSettings) import Control.Monad.Logger (runLoggingT) -import System.Log.FastLogger (newLoggerSet, defaultBufSize) +import Control.Concurrent (forkIO, threadDelay) +import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize) import Network.Wai.Logger (clockDateCacher) import Data.Default (def) import Yesod.Core.Types (loggerSet, Logger (Logger)) @@ -83,8 +84,18 @@ makeFoundation conf = do Database.Persist.applyEnv p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf) - loggerSet' <- newLoggerSet defaultBufSize Nothing - (getter, _) <- clockDateCacher + loggerSet' <- newStdoutLoggerSet defaultBufSize + (getter, updater) <- 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 + updateLoop + _ <- forkIO updateLoop let logger = Yesod.Core.Types.Logger loggerSet' getter foundation = App conf s p manager dbconf logger @@ -417,7 +428,7 @@ library , aeson >= 0.6 && < 0.8 , conduit >= 1.0 && < 2.0 , monad-logger >= 0.3 && < 0.4 - , fast-logger >= 2.1 && < 2.2 + , fast-logger >= 2.1.4 && < 2.2 , wai-logger >= 2.1 && < 2.2 executable PROJECTNAME diff --git a/yesod-bin/hsfiles/simple.hsfiles b/yesod-bin/hsfiles/simple.hsfiles index 70a88b89..68f7f9cc 100644 --- a/yesod-bin/hsfiles/simple.hsfiles +++ b/yesod-bin/hsfiles/simple.hsfiles @@ -32,7 +32,8 @@ import Network.Wai.Middleware.RequestLogger ) import qualified Network.Wai.Middleware.RequestLogger as RequestLogger import Network.HTTP.Conduit (newManager, conduitManagerSettings) -import System.Log.FastLogger (newLoggerSet, defaultBufSize) +import Control.Concurrent (forkIO, threadDelay) +import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize) import Network.Wai.Logger (clockDateCacher) import Data.Default (def) import Yesod.Core.Types (loggerSet, Logger (Logger)) @@ -74,8 +75,18 @@ makeFoundation conf = do manager <- newManager conduitManagerSettings s <- staticSite - loggerSet' <- newLoggerSet defaultBufSize Nothing - (getter, _) <- clockDateCacher + loggerSet' <- newStdoutLoggerSet defaultBufSize + (getter, updater) <- 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 + updateLoop + _ <- forkIO updateLoop let logger = Yesod.Core.Types.Logger loggerSet' getter foundation = App conf s manager logger @@ -344,7 +355,7 @@ library , aeson >= 0.6 && < 0.8 , conduit >= 1.0 && < 2.0 , monad-logger >= 0.3 && < 0.4 - , fast-logger >= 2.1 && < 2.2 + , fast-logger >= 2.1.4 && < 2.2 , wai-logger >= 2.1 && < 2.2 executable PROJECTNAME diff --git a/yesod-bin/hsfiles/sqlite.hsfiles b/yesod-bin/hsfiles/sqlite.hsfiles index 1ddd6ac1..7926323f 100644 --- a/yesod-bin/hsfiles/sqlite.hsfiles +++ b/yesod-bin/hsfiles/sqlite.hsfiles @@ -37,7 +37,8 @@ import qualified Database.Persist import Database.Persist.Sql (runMigration) import Network.HTTP.Conduit (newManager, conduitManagerSettings) import Control.Monad.Logger (runLoggingT) -import System.Log.FastLogger (newLoggerSet, defaultBufSize) +import Control.Concurrent (forkIO, threadDelay) +import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize) import Network.Wai.Logger (clockDateCacher) import Data.Default (def) import Yesod.Core.Types (loggerSet, Logger (Logger)) @@ -83,8 +84,18 @@ makeFoundation conf = do Database.Persist.applyEnv p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf) - loggerSet' <- newLoggerSet defaultBufSize Nothing - (getter, _) <- clockDateCacher + loggerSet' <- newStdoutLoggerSet defaultBufSize + (getter, updater) <- 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 + updateLoop + _ <- forkIO updateLoop let logger = Yesod.Core.Types.Logger loggerSet' getter foundation = App conf s p manager dbconf logger @@ -417,7 +428,7 @@ library , aeson >= 0.6 && < 0.8 , conduit >= 1.0 && < 2.0 , monad-logger >= 0.3 && < 0.4 - , fast-logger >= 2.1 && < 2.2 + , fast-logger >= 2.1.4 && < 2.2 , wai-logger >= 2.1 && < 2.2 executable PROJECTNAME