Heim >Backend-Entwicklung >PHP-Tutorial >Konfiguration und Nutzung von log4php
Führen Sie zunächst die Datei logger.php ein. log4php kann den automatischen Ladevorgang abschließen, indem es logger.php einführt. Der Speicherort der Datei lautet wie folgt:
Der Logger selbst definiert nicht das Ausgabeziel und das Format des Protokolls, daher müssen wir normalerweise zuerst die Konfigurationsdatei einführen, nachdem wir log4php eingeführt haben (weitere Details unten) ). Ein Logger ist eine Komponente, über die wir Protokollinformationen aufzeichnen. Rufen Sie nach dem Einführen der Konfigurationsdatei eine Logger-Entität über getLogger ab. Die Protokollinformationen können dann über die Druckmethode ausgedruckt werden. Zu den Druckmethoden gehören normalerweise „Info“, „Warnung“, „Fehler“, „Debug“ usw.
include('Logger.php'); Logger::Configure(COMMON_PATH . 'Conf/log.php');//引入配置文件 $logger = Logger::getLogger("main"); //生成日志实例 $logger->info("This is an informational message."); //在规定好的输出目的地用规定好的输出格式显示信息消息
log4php-Konfigurationsdatei unterstützt XML, PHP, Eigenschaften (INI) und andere Formate. Es wird auch eine programmierbare Konfiguration unterstützt, d. h. die Konfiguration kann über Funktionen geändert werden.
class MyConfigurator implements LoggerConfigurator { public function configure(LoggerHierarchy $hierarchy, $input = null) { // Create an appender which logs to file $appFile = new LoggerAppenderFile('foo'); $appFile->setFile('D:/Temp/log.txt'); $appFile->setAppend(true); $appFile->setThreshold('all'); $appFile->activateOptions(); // Use a different layout for the next appender $layout = new LoggerLayoutPattern(); $layout->setConversionPattern("%date %logger %msg%newline"); $layout->activateOptions(); // Create an appender which echoes log events, using a custom layout // and with the threshold set to INFO $appEcho = new LoggerAppenderEcho('bar'); $appEcho->setLayout($layout); $appEcho->setThreshold('info'); $appEcho->activateOptions(); // Add both appenders to the root logger $root = $hierarchy->getRootLogger(); $root->addAppender($appFile); $root->addAppender($appEcho); } }
Logger::Configure(COMMON_PATH . 'Conf/log.php');
Diese Codezeile führt die Konfiguration in das Projekt ein. Die Konfiguration umfasst im Allgemeinen den folgenden Inhalt:
1. Die Priorität der Protokollinformationen; 2. Das Ausgabeformat der Protokollinformationen;
Die Prioritäten der Protokollinformationen von hoch nach niedrig umfassen ERROR, WARN, INFO und DEBUG.
Die folgenden vier Ebenen werden häufig verwendet:
DEBUG Level weist darauf hin, dass feinkörnige Informationsereignisse für das Debuggen von Anwendungen sehr hilfreich sind.
INFO-Ebene gibt an, dass die Nachricht den laufenden Prozess der Anwendung auf einer grobkörnigen Ebene hervorhebt.
WARN-Stufe weist auf eine mögliche Fehlersituation hin.
FEHLER-Stufe gibt an, dass ein Fehlerereignis zwar auftritt, sich aber dennoch nicht auf den weiteren Betrieb des Systems auswirkt.
Das Programm kann nur Informationen mit einer niedrigeren Priorität als der aktuell eingestellten Stufe anzeigen. Die aktuelle Programmeinstellungsebene ist beispielsweise DEBUG, was bedeutet, dass alle Informationen im Programm angezeigt werden können. Wenn die aktuelle Programmebene „Info“ lautet, können nur die Protokollinformationen „Info“, „Warnung“ und „Fehler“ angezeigt werden.
return array( 'rootLogger' => array( 'appenders' => array( 'myConsoleAppender', ), 'level' => 'DEBUG' ), )
Wie die Priorität kann auch die Ausgabeadresse in der Konfigurationsdatei konfiguriert werden, und je nach Protokollkategorie können unterschiedliche Ausgabeziele festgelegt werden. Beispiel:
'loginFileAppender' => [ 'class' => 'LoggerAppenderDailyFile', 'layout' => [ 'class' => 'LoggerLayoutPattern', 'params' => [ 'conversionPattern' => '%date [%logger] %message%newline', ], ], 'params' => [ 'file' => './log/login/login_%s.log', 'datePattern' => 'Y_m_d', ] ],
log4php unterstützt 12 Ausgabeziele:
LoggerAppenderConsole verwendet php://stdout als Ausgabeziel. Standort
LoggerAppenderFile verwendet die Datei als Ausgabeziel
LoggerAppenderDailyFile verwendet die Datei als Ziel und gibt jeden Tag eine Datei aus
LoggerAppenderDb verwendet die Datenbank als Ausgabeziel
LoggerAppenderEcho gibt am Ende der Ausführungsdatei aus
LoggerAppenderMail nimmt die E-Mail als Ausgabeziel
LoggerAppenderMailEvent verwendet E-Mail als Ausgabeziel und löst Ereignisse aus
LoggerAppenderNull gibt keine Informationen aus
LoggerAppenderPhp LoggerAppenderPhp gibt PHP-Fehlerinformationen aus und wandelt verschiedene Log-Level-Informationen in PHP-Standardinformationen um
LoggerAppenderRollingFile gibt in der Form xxx.log.1 aus, xxx.log.2
LoggerAppenderSocket gibt im Socket-Modus aus
LoggerAppenderSyslog gibt das Systemprotokoll als Ziel aus, wobei die Funktion syslog() verwendet wird PHP zum Aufzeichnen
Der Code legt fest, dass jeden Tag eine Datei als Ausgabeziel ausgegeben werden soll, um Protokollinformationen zum Anmeldetyp aufzuzeichnen.
Es existiert als Attribut des Ausgabeziels. log4php enthält 5 verschiedene Ausgabemethoden:
LoggerLayoutHtml-Ausgabe im HTML-Format Debug-Informationen
LoggerLayoutSimple wird einfach im Format „Ebeneninformationen – Protokollinformationen“ angezeigt
LoggerLayoutTTCC wird im Format „Monat/Tag/Jahr“ angezeigt. Prozess] Ebeneninformationsprotokollname – Debug-Informationen“-Format wird angezeigt
LoggerLayoutPattern wird mit Musterausdruck als Ausgabeformat angezeigt (dieses Muster kann das Ausgabeformat anpassen)
LoggerXmlLayout//Ausgabe im XML-Modus
LoggerLayoutPattern bietet uns eine benutzerdefinierte Formatierungsmethode für Protokollinformationen, diesen Modus wird häufig in Projekten verwendet, um Protokollinformationen anzupassen. Bei der tatsächlichen Verwendung definieren wir das Muster durch die Konfiguration des Parameters „conversionPattern“. Parametervariablen werden normalerweise mithilfe einiger von log4php bereitgestellter Konvertierungsspezifizierer konfiguriert.
Zum Beispiel:
'conversionPattern' => '%date [%logger] %message%newline'
Das Format ist: jjjj-mm-ttThh:mm:ss+08:00.[Protokolltyp].Protokollinhalt.Neue Zeile.
Häufig verwendete Konvertierungsspezifizierer sind:
%logger(%lo,%c) Der Name des Loggers, der das Protokoll anfordert.
%data($d) Zeit. Der Standardwert ist das ISO8601-Format. Das Format kann über %data{(format)} geändert werden.
%location (%l) Die Standortinformationen des Anrufers
Der Inhalt des %message (%m %msg)-Protokolls
%n (%newline) newline
%level (%p) Priorität des aktuellen Protokollereignisses
Das obige ist der detaillierte Inhalt vonKonfiguration und Nutzung von log4php. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!