Heim >Backend-Entwicklung >PHP-Tutorial >Konfiguration und Nutzung von log4php

Konfiguration und Nutzung von log4php

炎欲天舞
炎欲天舞Original
2017-08-04 10:17:093490Durchsuche

Verwendung 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:

Konfiguration und Nutzung von log4php

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

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;

1. log4php-Protokollinformationspriorität

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'
    ),
    )

2. Konfiguration der Ausgabeadresse

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.

3. Protokolldatei-Ausgabeformat

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

Einige Formatparameter des LoggerLayoutPattern-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!

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