Heim >Backend-Entwicklung >PHP-Tutorial >Linux - log4php-Eingabeaufforderungen während der Verwendung: Die Konfigurationsdatei kann nicht geladen werden

Linux - log4php-Eingabeaufforderungen während der Verwendung: Die Konfigurationsdatei kann nicht geladen werden

WBOY
WBOYOriginal
2016-08-18 09:16:021295Durchsuche

Das Folgende ist eine Zeile des Nginx-Fehlerprotokolls. Um die Anzeige zu erleichtern, habe ich sie für alle getrennt:

<code>016/08/14 14:34:49 [error] 2819#0: *59 FastCGI sent in stderr: 
"PHP message: PHP Warning:  log4php: Configuration failed. 
Error loading configuration file: failed to load external entity 
"/alidata1/****/logger_conf.xml" Using default configuration. 
in /alidata1/****/configurators/LoggerConfiguratorDefault.php on line 475" 
while reading response header from upstream, client: 101.226.103.72, server: ****, 
request: "POST /share/notify HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", 
host: "*****"
</code>

Situationseinführung

1. Rufen Sie Logger::getRootLogger auf, verweisen Sie am Eingang auf Log4php und laden Sie gleichzeitig Logger.configure('*').

2. Ich vermute, dass es daran liegt, dass ich die Berechtigungen von Nginx einmal angepasst habe, aber jetzt habe ich sie auf „Niemand“ geändert. (Aber dieser Verdacht entbehrt jeder Grundlage. Ich habe Nginx unzählige Male neu gestartet)

3. Diese Situation ist gut und schlecht, manchmal kann ich Logger verwenden, um die Ausgabe normal zu drucken, aber meistens wird der oben genannte Fehler gemeldet. (Dies zeigt auch, dass es kein Problem mit den Konfigurationsdateiberechtigungen gibt). Manchmal wird es besser, wenn ich php-fpm neu starte, aber es besteht überhaupt keine Verbindung. Der Arbeitsprozess von php-fpm hat auch keine Berechtigungen

Ich habe die Situationen bestätigt, die ausgeschlossen werden können

<code>1. 文件确实存在,文件的权限已经是777.(甚至文件路径中权限我都修改成了777)
</code>

Hat jemand das gleiche Problem festgestellt? Ich rufe jetzt Logger.configure() auf, um die aufrufende Datei anzugeben. Können Sie mir helfen, einen Blick darauf zu werfen?

Linux - log4php-Eingabeaufforderungen während der Verwendung: Die Konfigurationsdatei kann nicht geladen werden

Antwortinhalt:

Das Folgende ist eine Zeile des Nginx-Fehlerprotokolls. Um die Anzeige zu erleichtern, habe ich sie für alle getrennt:

<code>016/08/14 14:34:49 [error] 2819#0: *59 FastCGI sent in stderr: 
"PHP message: PHP Warning:  log4php: Configuration failed. 
Error loading configuration file: failed to load external entity 
"/alidata1/****/logger_conf.xml" Using default configuration. 
in /alidata1/****/configurators/LoggerConfiguratorDefault.php on line 475" 
while reading response header from upstream, client: 101.226.103.72, server: ****, 
request: "POST /share/notify HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", 
host: "*****"
</code>
Situationseinführung

1. Rufen Sie Logger::getRootLogger auf, verweisen Sie am Eingang auf Log4php und laden Sie gleichzeitig Logger.configure('

*').

2. Ich vermute, dass es daran liegt, dass ich die Berechtigungen von Nginx einmal angepasst habe, aber jetzt habe ich sie auf „Niemand“ geändert. (Aber dieser Verdacht entbehrt jeder Grundlage. Ich habe Nginx unzählige Male neu gestartet)

3. Diese Situation kann manchmal gut und schlecht sein, um die Ausgabe normal zu drucken, aber meistens wird der oben genannte Fehler gemeldet. (Dies zeigt auch, dass es kein Problem mit den Konfigurationsdateiberechtigungen gibt). Manchmal wird es besser, wenn ich php-fpm neu starte, aber es besteht überhaupt keine Verbindung. Der Arbeitsprozess von php-fpm hat auch keine Berechtigungen

Ich habe die Situationen bestätigt, die ausgeschlossen werden können

<code>1. 文件确实存在,文件的权限已经是777.(甚至文件路径中权限我都修改成了777)
</code>
Hat jemand das gleiche Problem festgestellt? Ich rufe jetzt Logger.configure() auf, um die aufrufende Datei anzugeben. Können Sie mir helfen, einen Blick darauf zu werfen?

Linux - log4php-Eingabeaufforderungen während der Verwendung: Die Konfigurationsdatei kann nicht geladen werden

Lösung des Problems

Vielen Dank für diesen Artikel, bitte klicken Sie zum Anzeigen

Eine kurze Einführung in die Ursache des Problems: Die importierte Klasse enthält diese Funktion: libxml_disable_entity_loader

Meine log4php.properties

PHP-Initialisierung
<code>log4php.rootLogger=INFO, stderr, stdout, file
log4php.appender.stdout=LoggerAppenderConsole
log4php.appender.stdout.layout=LoggerLayoutPattern
log4php.appender.stdout.layout.ConversionPattern=%date{ISO8601} [%p] %m%n
log4php.appender.stdout.threshold=INFO

log4php.appender.stderr=LoggerAppenderConsole
log4php.appender.stderr.layout=LoggerLayoutPattern
log4php.appender.stderr.target=stderr
log4php.appender.stderr.threshold=ERROR
log4php.appender.stderr.layout.ConversionPattern=%date{ISO8601} [%p] [%l] %m%n

log4php.appender.file=LoggerAppenderDailyFile
log4php.appender.file.layout=LoggerLayoutPattern
log4php.appender.file.threshold=ERROR
log4php.appender.file.file=commands/logs/%s-error.log
log4php.appender.file.layout.ConversionPattern=%date{ISO8601} [%p] [%l] %m%n</code>

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn