Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Ausgabeprotokoll

PHP-Ausgabeprotokoll

不言
不言Original
2018-04-17 09:02:4216273Durchsuche

Der Inhalt dieses Artikels handelt vom PHP-Ausgabeprotokoll, das einen gewissen Referenzwert hat. Jetzt kann ich ihn mit allen teilen, die ihn brauchen.

Nachdruck von https ://www.cnblogs.com/yszr/p/8489433.html
error_log('Die Informationen, die Sie ausgeben möchten', 3, 'E:workjiajiayueApplicationApiController1.txt');die;
php error_log zeichnet die Protokollnutzung und -konfiguration auf


Für PHP-Entwickler sollte die Option display_errors sofort deaktiviert werden, sobald ein Produkt in Gebrauch genommen wird, um zu vermeiden, dass Pfad, Datenbankverbindung, Datentabelle und andere Informationen von diesen offengelegt werden Fehler. Und wurde von Hackern angegriffen. Allerdings treten nach der Inbetriebnahme eines Produkts zwangsläufig Fehler auf. Wie kann man also einige Fehlerberichte aufzeichnen, die für Entwickler nützlich sind? Wir können Fehlerberichte in separaten Textdateien protokollieren. Die Aufzeichnung von Fehlerprotokollen kann Entwicklern oder Managern dabei helfen, zu überprüfen, ob es Probleme mit dem System gibt. Wenn Sie den Fehlerbericht im Programm in das Fehlerprotokoll schreiben müssen, aktivieren Sie einfach die Konfigurationsanweisung log_errors in der PHP-Konfigurationsdatei. Fehlerberichte werden standardmäßig in der Protokolldatei des Webservers protokolliert, beispielsweise in der Fehlerprotokolldatei error.log des Apache-Servers. Natürlich können Sie das Fehlerprotokoll auch in einer angegebenen Datei aufzeichnen oder an das System-Syslog senden. Die entsprechenden Einführungen lauten wie folgt:


1. Verwenden Sie die angegebene Datei, um das Fehlerberichtsprotokoll aufzuzeichnen


Verwenden Sie die angegebene Datei, um das Fehlerberichtsprotokoll aufzuzeichnen. Verwenden Sie die angegebene Datei, um das Fehlerberichtsprotokoll aufzuzeichnen Speichern Sie diese Datei im Fehlerprotokoll unbedingt außerhalb des Dokumentstammverzeichnisses, um die Möglichkeit eines Angriffs zu verringern. Und die Datei muss von dem Benutzer geschrieben werden, der das PHP-Skript ausführt (dem Eigentümer des Webserverprozesses). Nehmen Sie an, dass im Linux-Betriebssystem die Datei error.log im Verzeichnis /usr/local/ als Fehlerprotokolldatei verwendet wird und der Webserver-Prozessbenutzer über Schreibberechtigungen verfügt. Setzen Sie dann in der PHP-Konfigurationsdatei den Wert der error_log-Direktive auf den absoluten Pfad der Fehlerprotokolldatei.
Sie müssen die folgenden Änderungen an den Konfigurationsanweisungen in php.ini vornehmen:
1. Jeder Fehler, der auftritt, wird an PHP gemeldet.
2 obige Direktive Alle Fehlerberichte der definierten Regeln
3. log_errors = on; Bestimmen Sie den Speicherort der Protokolldatensätze
4. log_errors_max_len = 1024; legen Sie die maximale Länge jedes Protokolls fest
5. /php_error.log ;Geben Sie den Speicherort der Protokolldatei an, in die der generierte Fehlerbericht geschrieben wird.
Nachdem die PHP-Konfigurationsdatei wie oben festgelegt wurde, starten Sie den Webserver neu. Auf diese Weise werden beim Ausführen einer beliebigen PHP-Skriptdatei alle generierten Fehlerberichte nicht im Browser angezeigt, sondern im von Ihnen angegebenen Fehlerprotokoll /usr/local/error.log aufgezeichnet. Darüber hinaus können nicht nur alle Fehler, die den durch error_reporting definierten Regeln entsprechen, aufgezeichnet werden, sondern auch eine benutzerdefinierte Fehlermeldung über die Funktion error_log() in PHP versendet werden.

Der Prototyp dieser Funktion lautet wie folgt:

1. bool error_log ( string message [, int message_type [, string Ziel [, Zeichenfolge extra_headers]]] )



Diese Funktion sendet Fehlerinformationen an die Fehlerprotokolldatei des Webservers, eines TCP-Servers oder an einen angegebenen Datei. Diese Funktion gibt TRUE zurück, wenn sie erfolgreich ist, und FALSE, wenn sie fehlschlägt. Die erste Parameternachricht ist erforderlich und ist die zu sendende Fehlermeldung. Wenn nur dieser Parameter verwendet wird, wird die Nachricht an den in der Konfigurationsdatei php.ini festgelegten Ort gesendet. Der zweite Parameter message_type ist ein ganzzahliger Wert: 0 bedeutet, dass er an das Protokoll des Betriebssystems gesendet wird; 1 verwendet die Mail()-Funktion von PHP, um die Nachricht an eine E-Mail-Adresse zu senden; 2 Send Die Fehlermeldung an den TCP-Server stellt zu diesem Zeitpunkt die Ziel-IP und den Port 3 dar. Speichern Sie die Informationen im Dateiziel.


Wenn wir das Problem der Anmeldung bei der Oracle-Datenbank als Beispiel nehmen, ist die Verwendung dieser Funktion wie folgt:


1. <?php      
2.     if(!Ora_Logon($username, $password)){     
 3.         error_log("Oracle数据库不可用!", 0);        //将错误消息写入到操作系统日志中   
4.     }   
5.     if(!($foo=allocate_new_foo()){   
6.         error_log("出现*烦了!", 1, ". mydomain.com");   //发送到管理员邮箱中   
7.     }  
8.     error_log("搞砸了!",   2,   "localhost:5000");     //发送到本机对应5000端口的服务器中   
9.     error_log("搞砸了!",   3,   "/usr/local/errors.log");  //发送到指定的文件中   
10. ?>





2. Fehlerinformationen werden im Protokoll des Betriebssystems aufgezeichnet.


Fehlerinformationen werden im Protokoll aufgezeichnet des Betriebssystems Fehlerinformationen werden im Betriebssystemprotokoll aufgezeichnet. Fehlerberichte können auch im Betriebssystemprotokoll aufgezeichnet werden, aber die Protokollverwaltung unterscheidet sich etwas zwischen verschiedenen Betriebssystemen. Unter Linux werden Fehleranweisungen an Syslog gesendet, während unter Windows Fehler an das Ereignisprotokoll gesendet werden. Wenn Sie mit Syslog nicht vertraut sind, wissen Sie zumindest, dass es sich um ein UNIX-basiertes Protokollierungstool handelt, das eine API zum Aufzeichnen von Meldungen im Zusammenhang mit der System- und Anwendungsausführung bereitstellt. Das Windows-Ereignisprotokoll ist eigentlich dasselbe wie das UNIX-Syslog, und diese Protokolle können normalerweise über die Ereignisanzeige angezeigt werden. Wenn Sie Fehlerberichte in das Betriebssystemprotokoll schreiben möchten, können Sie den Wert der error_log-Direktive in der Konfigurationsdatei auf syslog setzen.


Die spezifischen Konfigurationsanweisungen, die in php.ini geändert werden müssen, lauten wie folgt:


1. error_reporting  =  E_ALL                   ;将会向PHP报告发生的每个错误   
2. display_errors = Off                            ;不显示 满足上条指令所定义规则的所有错误报告   
3. log_errors = On                             ;决定日志语句记录的位置   
4. log_errors_max_len = 1024                   ;设置每个日志项的最大长度   
5. error_log = syslog                          ;指定产生的错误报告写入操作系统的日志里




Neben der allgemeinen Fehlerausgabe ermöglicht PHP auch das Senden benutzerdefinierter Meldungen an das System-Syslog. Obwohl benutzerdefinierte Nachrichten auch über die zuvor eingeführte Funktion error_log() an Syslog gesendet werden können, stellt PHP vier dedizierte Funktionen für diese Funktion bereit, die zusammen verwendet werden müssen.


werden wie folgt eingeführt:


define_syslog_variables()


Muss vor der Verwendung der drei Funktionen openlog(), syslog und closelog verwendet werden () Rufen Sie zuerst diese Funktion auf. Denn wenn diese Funktion aufgerufen wird, werden einige notwendige Konstanten für die folgenden drei Funktionen basierend auf der aktuellen Systemumgebung initialisiert.


openlog()


Öffnen Sie eine Verbindung zum Logger im aktuellen System, um das Einfügen von Protokollnachrichten in das System vorzubereiten. Und fügen Sie den bereitgestellten ersten Zeichenfolgenparameter in jede Protokollnachricht ein. Die Funktion muss außerdem zwei Parameter angeben, die im Protokollkontext verwendet werden.


syslog()


Diese Funktion sendet eine benutzerdefinierte Nachricht an das Systemprotokoll. Es sind zwei erforderliche Parameter erforderlich. Der erste Parameter passt die Priorität der Nachricht an, indem er eine Konstante angibt. Beispielsweise stellt LOG_WARNING eine allgemeine Warnung dar, LOG_EMERG stellt ein ernstes Problem dar, das auf einen Systemabsturz hinweisen kann, und einige andere Konstanten, die den Schweregrad angeben, können gemäß der offiziellen Dokumentation verwendet werden. Der zweite Parameter ist eine benutzerdefinierte Nachricht, die an das Systemprotokoll gesendet wird. Sie müssen eine Nachrichtenzeichenfolge oder eine Fehlerzeichenfolge bereitstellen, die von der PHP-Engine zur Laufzeit bereitgestellt wird.


closelog()


Diese Funktion wird nach dem Senden der benutzerdefinierten Nachricht an das Systemprotokoll aufgerufen und schließt die durch die Funktion openlog() geöffnete Protokollverbindung.





Wenn Sie in der Konfigurationsdatei den Befehl zum Senden benutzerdefinierter Nachrichten an Syslog aktiviert haben, können Sie die vier zuvor eingeführten Funktionen verwenden, um eine Warnmeldung an das zu senden Systemprotokoll. und verwenden Sie das Syslog-Analysetool im System, um die vom PHP-Programm gesendeten benutzerdefinierten Nachrichten anzuzeigen und zu analysieren, wie unten gezeigt:


1.  
2.     define_syslog_variables();   
3.     openlog("PHP5", LOG_PID , LOG_USER);   
4.     syslog(LOG_WARNING, "警告报告向syslog中发送的演示, 警告时间:".date("Y/m/d H:i:s"));  
5.     closelog();   
6. ?>

Nehmen wir das Windows-System als Beispiel: Klicken Sie mit der rechten Maustaste auf „Arbeitsplatz“, wählen Sie die Verwaltungsoption aus, gehen Sie dann zum Menü „Systemtools“, wählen Sie „Ereignisanzeige“ und suchen Sie dann nach der Anwendungsoption Warnmeldung. Der obige Code generiert eine Meldung ähnlich der folgenden in der Syslog-Datei des Systems, die Teil des Ereignisses ist:


1. PHP5[3084], eine Demonstration der an Syslog gesendeten Warnmeldung, Warnung Zeit: 26.03.2009 04:09:11.


Ob Sie eine bestimmte Datei oder Syslog zum Aufzeichnen von Fehlerprotokollen verwenden, hängt von Ihrer Webserverumgebung ab. Wenn Sie die Kontrolle über den Webserver haben, ist die Verwendung von Syslog ideal, da Sie Syslog-Analysetools verwenden können, um die Protokolle anzuzeigen und zu analysieren. Wenn Ihre Website jedoch in einem virtuellen Host auf einem gemeinsam genutzten Server ausgeführt wird, können Sie zum Aufzeichnen von Fehlerprotokollen nur eine separate Textdatei verwenden.
      

Verwandte Empfehlungen:

PHP-Ausgabe aller Zeitzonenliste

PHP-Protokollschreibfunktion

PHP implementiert eine Protokollfunktion

Das obige ist der detaillierte Inhalt vonPHP-Ausgabeprotokoll. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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