Jon*_*hon 1 logging shared-hosting file log4php
我在GoDaddy Shared Hosting(php 5.3.13)上运行此脚本作为cron作业,并使用log4php.脚本似乎运行良好,并完成.但是当log4php尝试完成时,它会抛出此错误.
它似乎确实输出了文件及其内容.我甚至将文件的权限更改为777.它在执行文件大小检查时似乎抛出此错误...
任何有关此错误的原因/解决方案的帮助将非常感激.
错误:
<b>Fatal error</b>: Uncaught exception 'ErrorException' with message '2: filesize() [<a href='function.filesize'>function.filesize</a>]: 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() [<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->write(NULL)
#3 /home/content/89/10338789/html/Forum/phpBB3/program/log4php/LoggerAppender.php(85): LoggerAppenderFile->close()
#4 [internal function]: LoggerAppender->__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 />
Run Code Online (Sandbox Code Playgroud)
配置文件:
<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="jonathonwisnoski@hotmail.com" />
<param name="from" value="logger@xxx.ca" />
<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>
Run Code Online (Sandbox Code Playgroud)
小智 6
...或者您将LoggerAppenderRollingFile.php中的错误代码行更改为:
if (filesize(realpath($this->file)) > $this->maxFileSize) {
Run Code Online (Sandbox Code Playgroud)
http://php.net/manual/en/function.realpath.php
小智 5
这是一个LoggerAppenderRollingFile问题,您需要使用绝对路径来记录日志文件(解决方法).脚本执行后,将调用LoggerAppender :: __ destruct,并且找不到相关文件日志(log.txt).
更改:
log4php.appender.<yourappender>.file=log.txt
Run Code Online (Sandbox Code Playgroud)
至
log4php.appender.<yourappender>.file=/absolutepath/log.txt
Run Code Online (Sandbox Code Playgroud)
发布主题: