1
0
forked from GitHub/gf-core

pgf-server: write stderr to pgf-error.log, since lighttpd closes stderr for fastcgi processes.

This commit is contained in:
bjorn
2008-11-04 09:28:21 +00:00
parent 1684db98ea
commit 76b8d37824
2 changed files with 12 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
{-# LANGUAGE DeriveDataTypeable #-}
module FastCGIUtils (initFastCGI, loopFastCGI,
throwCGIError, handleCGIErrors,
stderrToFile,
outputJSONP,
splitBy) where
@@ -110,6 +111,13 @@ restartIfModified =
logError :: String -> IO ()
logError s = hPutStrLn stderr s
stderrToFile :: FilePath -> IO ()
stderrToFile file =
do let mode = ownerModes `unionFileModes` groupReadMode `unionFileModes` otherReadMode
fileFd <- openFd file WriteOnly (Just mode) (defaultFileFlags { append = True })
dupTo fileFd stdError
return ()
-- * General CGI Error exception mechanism
data CGIError = CGIError { cgiErrorCode :: Int, cgiErrorMessage :: String, cgiErrorText :: [String] }

View File

@@ -20,9 +20,12 @@ import Data.Maybe
import System.Directory
import System.FilePath
logFile :: FilePath
logFile = "pgf-error.log"
main :: IO ()
main = do initFastCGI
main = do stderrToFile logFile
initFastCGI
cache <- newCache PGF.readPGF
runFastCGIConcurrent' forkIO 100 (handleErrors (handleCGIErrors (cgiMain cache)))