packages feed

yesod 1.2.4 → 1.2.5

raw patch · 2 files changed

+34/−2 lines, 2 filesdep +fast-loggerdep +monad-logger

Dependencies added: fast-logger, monad-logger

Files

Yesod/Default/Main.hs view
@@ -1,15 +1,19 @@ {-# LANGUAGE CPP                #-} {-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE TemplateHaskell    #-} module Yesod.Default.Main     ( defaultMain+    , defaultMainLog     , defaultRunner     , defaultDevelApp+    , LogFunc     ) where  import Yesod.Default.Config import Network.Wai (Application) import Network.Wai.Handler.Warp-    (runSettings, defaultSettings, settingsPort, settingsHost)+    (runSettings, defaultSettings, settingsPort, settingsHost, settingsOnException) import System.Directory (doesDirectoryExist, removeDirectoryRecursive) import Network.Wai.Middleware.Gzip (gzip, GzipFiles (GzipCacheFolder), gzipFiles, def) import Network.Wai.Middleware.Autohead (autohead)@@ -18,6 +22,9 @@ import System.Environment (getEnvironment) import Data.Maybe (fromMaybe) import Safe (readMay)+import Control.Monad.Logger (Loc, LogSource, LogLevel (LevelError), liftLoc)+import System.Log.FastLogger (LogStr, toLogStr)+import Language.Haskell.TH.Syntax (qLocation)  #ifndef WINDOWS import qualified System.Posix.Signals as Signal@@ -43,6 +50,29 @@     runSettings defaultSettings         { settingsPort = appPort config         , settingsHost = appHost config+        } app++type LogFunc = Loc -> LogSource -> LogLevel -> LogStr -> IO ()++-- | Same as @defaultMain@, but gets a logging function back as well as an+-- @Application@ to install Warp exception handlers.+--+-- Since 1.2.5+defaultMainLog :: (Show env, Read env)+               => IO (AppConfig env extra)+               -> (AppConfig env extra -> IO (Application, LogFunc))+               -> IO ()+defaultMainLog load getApp = do+    config <- load+    (app, logFunc) <- getApp config+    runSettings defaultSettings+        { settingsPort = appPort config+        , settingsHost = appHost config+        , settingsOnException = const $ \e -> logFunc+            $(qLocation >>= liftLoc)+            "yesod"+            LevelError+            (toLogStr $ "Exception from Warp: " ++ show e)         } app  -- | Run your application continously, listening for SIGINT and exiting
yesod.cabal view
@@ -1,5 +1,5 @@ name:            yesod-version:         1.2.4+version:         1.2.5 license:         MIT license-file:    LICENSE author:          Michael Snoyman <michael@snoyman.com>@@ -46,6 +46,8 @@                    , directory                    , template-haskell                    , bytestring+                   , monad-logger+                   , fast-logger      exposed-modules: Yesod                    , Yesod.Default.Config