2013-03-27 95 views
1

我運行此腳本作爲GoDaddy的共享主機(PHP 5.3.13)cron作業,並且正在使用log4php。腳本似乎運行良好,並完成。但是當log4php試圖完成時,它會拋出這個錯誤。LOG4PHP文件大小錯誤

它似乎實際輸出的文件,其內容。我甚至改變了文件的權限爲777,似乎當它的文件大小檢查被拋出這個錯誤...

與原因/解決這個錯誤任何幫助將非常感激。

錯誤:

<b>Fatal error</b>: Uncaught exception 'ErrorException' with message '2: filesize() [&lt;a href='function.filesize'&gt;function.filesize&lt;/a&gt;]: stat failed for log.txt, file: /home/content/89/10338789/html/Forum/phpBB3/program/log4php/appenders/LoggerAppenderRollingFile.php, line: 223' in /home/content/89/10338789/html/Forum/phpBB3/program/log4php/appenders/LoggerAppenderRollingFile.php:223 
Stack trace: 
#0 [internal function]: errorHandler(2, 'filesize() [&lt;a ...', '/home/content/8...', 223, Array) 
#1 /home/content/89/10338789/html/Forum/phpBB3/program/log4php/appenders/LoggerAppenderRollingFile.php(223): filesize('log.txt') 
#2 /home/content/89/10338789/html/Forum/phpBB3/program/log4php/appenders/LoggerAppenderFile.php(165): LoggerAppenderRollingFile-&gt;write(NULL) 
#3 /home/content/89/10338789/html/Forum/phpBB3/program/log4php/LoggerAppender.php(85): LoggerAppenderFile-&gt;close() 
#4 [internal function]: LoggerAppender-&gt;__destruct() 
#5 {main} 
thrown in <b>/home/content/89/10338789/html/Forum/phpBB3/program/log4php/appenders/LoggerAppenderRollingFile.php</b> on line <b>223</b><br /> 

配置文件:

<configuration xmlns="http://logging.apache.org/log4php/"> 

    <appender name="myConsoleAppender" class="LoggerAppenderConsole"> 
     <filter class="LoggerFilterLevelRange"> 
      <param name="levelMin" value="info" /> 
     </filter> 
    </appender> 

    <appender name="myFileAppender" class="LoggerAppenderRollingFile"> 
     <layout class="LoggerLayoutPattern"> 
      <param name="conversionPattern" value="%date %-5level - %message%newline" /> 
     </layout> 
     <param name="file" value="log.txt" /> 
     <param name="maxFileSize" value="10MB" /> 
    </appender> 

    <appender name="myEmailAppender" class="LoggerAppenderMail"> 
     <layout class="LoggerLayoutSimple" /> 
     <param name="to" value="[email protected]" /> 
     <param name="from" value="[email protected]" /> 
     <filter class="LoggerFilterLevelRange"> 
      <param name="levelMin" value="info" /> 
     </filter> 
    </appender> 

    <root> 
     <appender_ref ref="myConsoleAppender" /> 
     <appender_ref ref="myFileAppender" /> 
     <appender_ref ref="myEmailAppender" /> 
    </root> 
</configuration> 
+0

去除GoDaddy的標籤。 – 2016-08-26 06:48:55

回答

3

這是一個LoggerAppenderRollingFile問題,您需要使用絕對路徑,以日誌文件(解決方法)。腳本執行後,LoggerAppender :: __自毀叫,相對日誌文件(log.txt中)無法找到。

變化:

log4php.appender.<yourappender>.file=log.txt 

log4php.appender.<yourappender>.file=/absolutepath/log.txt 

相關型號主題:

  1. http://www.php.net/manual/en/function.register-shutdown-function.php#92657
  2. Why does getcwd() returns/in __destruct()?
  3. https://bugs.php.net/bug.php?id=34206
+0

如果你不想硬編碼的路徑,這似乎工作:'%APP_PATH%/應用/日誌/ debug.log' – jbobbins 2015-05-05 22:46:52

5

...或者你在LoggerAppenderRollingFile.php改變這種錯誤的代碼行:正被刪除

if (filesize(realpath($this->file)) > $this->maxFileSize) { 

http://php.net/manual/en/function.realpath.php

+0

事實上,臭蟲(https://issues.apache.org/jira/browse/ LOG4PHP-210)正在修復「開發」。結帳[提交](https://git-wip-us.apache.org/repos/asf?p=logging-log4php.git;a=commit;h=1b558631d58f3b46040ac2550f729a69337d540f),但該版本尚未發佈.. 。4年。 – 2017-08-29 15:03:13