Die Protokollverarbeitung wird automatisch vom System durchgeführt. Wenn die Protokollierung aktiviert ist, zeichnen Sie alle Protokollinformationen für auf zulässige Protokollebenen.
Aus Leistungsgründen muss die SQL-Protokollebene gültig sein, wenn der Debug-Modus aktiviert ist, andernfalls wird sie nicht aufgezeichnet. Die Systemprotokollierung wird durch die Kernklasse ThinkLog und ihren Treiber vervollständigt, der verschiedene Möglichkeiten zum Aufzeichnen verschiedener Ebenen von Protokollinformationen bietet.
Standardmäßig wird die Protokollierung nur im Debug-Modus aufgezeichnet. Um die Protokollierung im Bereitstellungsmodus zu aktivieren, muss der Parameter LOG_RECORD
in der Konfiguration aktiviert sein und die Protokollierungsebene, die aufgezeichnet werden soll, kann in der Anwendungskonfiguration konfiguriert werden Datei, zum Beispiel:
<span class="str">'LOG_RECORD'<span class="pln"> <span class="pun">=><span class="pln"> <span class="kwd">true<span class="pun">,<span class="pln"> <span class="com">// 开启日志记录</span></span></span></span></span></span></span></span>
<span class="str">'LOG_LEVEL'<span class="pln"> <span class="pun">=><span class="str">'EMERG,ALERT,CRIT,ERR'<span class="pun">,<span class="pln"> <span class="com">// 只记录EMERG ALERT CRIT ERR 错误</span></span></span></span></span></span></span>
Protokollebene
ThinkPHP klassifiziert Systemprotokolle nach Ebenen , einschließlich:
- EMERG Schwerwiegender Fehler, der dazu führt, dass das System abstürzt und unbrauchbar wird
- ALERT Alarmfehler, ein Fehler, der auftreten muss sofort behoben werden
- CRITFehler bei kritischem Wert, Fehler überschreitet kritischen Wert
- ERRAllgemeiner Fehler
- WARN Warnung Fehler, ein Fehler, der gewarnt werden muss
- HINWEIS Benachrichtigung, ein Fehler, dass das Programm ausgeführt werden kann, aber noch nicht perfekt ist
- INFO Informationen, Programmausgabeinformationen
- DEBUG Debugging, wird für Debugging-Informationen verwendet
- SQL SQL-Anweisung, diese Ebene ist nur im Debugging-Modus gültig ist aktiviert
Aufzeichnungsmethode
Die standardmäßige Protokollaufzeichnungsmethode ist die Dateimethode, die erweitert werden kann, um über den Treiber weitere Aufzeichnungsmethoden zu unterstützen.
Die Aufzeichnungsmethode wird durch den Parameter LOG_TYPE konfiguriert, zum Beispiel:
<span class="str">'LOG_TYPE'<span class="pln"> <span class="pun">=><span class="pln"> <span class="str">'File'<span class="pun">,<span class="pln"> <span class="com">// 日志记录类型 默认为文件方式</span></span></span></span></span></span></span></span>
Dateimodusaufzeichnung, der entsprechende Treiber Die Datei befindet sich im System
Library/Think/Log/Driver/File.class.php
.
Manuelle Aufzeichnung
Im Allgemeinen erfolgt die Protokollierung des Systems automatisch und es ist keine manuelle Aufzeichnung erforderlich. Manchmal ist es jedoch erforderlich, Protokollinformationen manuell aufzuzeichnen 3 Methode zur Protokollierung.
方法 | 描述 |
---|---|
Log::record() | 记录日志信息到内存 |
Log::save() | 把保存在内存中的日志信息(用指定的记录方式)写入 |
Log::write() | 实时写入一条日志信息 |
Da das System nach Abschluss der Anforderung automatisch die Methode Log::save aufruft, müssen Sie normalerweise nur Log::record aufrufen, um die Protokollinformationen aufzuzeichnen.
Die Aufzeichnungsmethode wird wie folgt verwendet:
<span class="pln">ThinkLog<span class="pun">::<span class="pln">record<span class="pun">(<span class="str">'测试日志信息'<span class="pun">);</span></span></span></span></span></span>
Die Standardprotokollstufe ist ERR. Sie können die Protokollstufe auch angeben:
<span class="pln">ThinkLog<span class="pun">::<span class="pln">record<span class="pun">(<span class="str">'测试日志信息,这是警告级别'<span class="pun">,<span class="str">'WARN'<span class="pun">);</span></span></span></span></span></span></span></span>
Die Aufzeichnungsmethode zeichnet nur Informationen auf der Protokollebene auf, die die aktuelle Konfiguration zulässt:
-
<span class="str">'LOG_LEVEL'<span class="pln"> <span class="pun">=><span class="str">'EMERG,ALERT,CRIT,ERR'<span class="pun">,<span class="pln"> <span class="com">// 只记录EMERG ALERT CRIT ERR 错误</span></span></span></span></span></span></span>
Dann werden die mit der oben genannten Aufzeichnungsmethode aufgezeichneten Protokollinformationen direkt gefiltert, oder Sie können die Aufzeichnung erzwingen:
<span class="pln">ThinkLog<span class="pun">::<span class="pln">record<span class="pun">(<span class="str">'测试日志信息,这是警告级别'<span class="pun">,<span class="str">'WARN'<span class="pun">,<span class="kwd">true<span class="pun">);</span></span></span></span></span></span></span></span></span></span>
Mit der Aufzeichnungsmethode aufgezeichnete Protokollinformationen werden nicht in Echtzeit gespeichert. Wenn eine Echtzeitaufzeichnung erforderlich ist, kann die Schreibmethode verwendet werden, zum Beispiel:
<span class="pln">ThinkLog<span class="pun">::<span class="pln">write<span class="pun">(<span class="str">'测试日志信息,这是警告级别,并且实时写入'<span class="pun">,<span class="str">'WARN'<span class="pun">);</span></span></span></span></span></span></span></span>
Schreibmethode Die Protokollierung wird von der konfigurierten zulässigen Protokollebene nicht beeinflusst und jede Ebene von Protokollinformationen kann in Echtzeit geschrieben werden.