2013-03-27 7 views
1

J'utilise ce script comme travail cron sur GoDaddy Shared Hosting (php 5.3.13) et j'utilise log4php. Le script semble fonctionner correctement et finir. Mais quand log4php essaie de finir, il renvoie cette erreur.LOG4PHP Taille du fichier Erreur

Il semble effectivement sortir le fichier et son contenu. Et j'ai même changé les autorisations du fichier à 777. Il semble lancer cette erreur quand il fait le contrôle de la taille de fichier ...

Toute aide avec la cause/solution à cette erreur serait très appréciée.

Erreur:

<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 /> 

fichier de configuration:

<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

enlevé étiquette GoDaddy qui est en cours de suppression. –

Répondre

3

C'est une question LoggerAppenderRollingFile, vous devez utiliser le chemin absolu pour le fichier journal (solution). Après l'exécution du script, la destruction de LoggerAppender :: __ est appelée et le fichier journal relatif (log.txt) est introuvable.

changement:

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

à

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

sujets releated:

  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

Si vous ne voulez pas coder un chemin, cela semble fonctionner: '% APP_PATH%/application/logs/debug.log' – jbobbins

5

... ou vous modifiez la ligne de code erroné dans LoggerAppenderRollingFile.php à:

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

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

+0

En effet, le bug (https://issues.apache.org/jira/browse/ LOG4PHP-210) est fixé sur "développer". Commander [le commit] (https://git-wip-us.apache.org/repos/asf?p=logging-log4php.git;a=commit;h=1b558631d58f3b46040ac2550f729a69337d540f) mais cette version n'est pas encore disponible. . Depuis 4 ans. –