Heim PHP-Framework Denken Sie an PHP Protokolländerungen in der ThinkPHP6.0-Version

Protokolländerungen in der ThinkPHP6.0-Version

Dec 16, 2019 pm 01:41 PM
变化 日志

Protokolländerungen in der ThinkPHP6.0-Version

Die Protokollanalogie von 6.0 ist gegenüber der Vorgängerversion deutlich verbessert. Zu den wichtigsten neuen Funktionen gehören:

· Formatierung der Protokollinformationen

·Multi-Channel-Schreibunterstützung

·Verzögerung /Echtzeit-Schreiben

·Informationsverarbeitungsereignis protokollieren

·Protokollebene angegeben Kanalschreiben

·Unterstützt das Schließen von Protokollen/Kanälen

Die größte Änderung in der neuen Version der Protokollklasse besteht darin, dass sie Mehrkanal unterstützt Schreiben, was bedeutet, dass Sie gleichzeitig schreiben können. Oder Sie können einigen Protokolltypen zusätzliche Protokollkanäle hinzufügen. Beispielsweise können Sie für einige abnormale Protokolle festlegen, dass Fehlerbenachrichtigungen per E-Mail gesendet werden.

Weitere Änderungen umfassen hauptsächlich:

·WEB-Protokolle und CLI-Protokolle werden zusammengeführt und formatiert;

·Zugriffsinformationen werden nicht mehr standardmäßig aufgezeichnet, Sie können sie bei Bedarf selbst aufzeichnen

·Unabhängige Protokolle unterstützt auch das JSON-Format Record;

Die entsprechende Konfiguration des Protokolls kann in der Datei config/log.php festgelegt werden. Dieser Artikel beschreibt hauptsächlich die Änderungen in der neuen Version des Protokolls.

Protokollkanal

Das Konzept des Protokollkanals entspricht der Erstellung eines Protokollraums für Protokollinformationen. Die Protokollinformationen jedes Protokollkanals übernehmen einen unabhängigen Schreibmechanismus oder eine unabhängige Konfiguration Mit den Parametern können Sie den Standardprotokollkanal für Protokollinformationen angeben oder das Schreiben des Kanals dynamisch umschalten und das gleichzeitige Schreiben derselben Protokollinformationen in mehrere Protokollkanäle unterstützen.

Sie können Kanäle in der Kanalkonfiguration der Protokollkonfigurationsdatei definieren. Standardmäßig ist nur ein Dateikanal definiert.

// 日志通道列表
'channels'     => [
    'file' => [
        // 日志记录方式
        'type'           => 'File',
        // 日志保存目录
        'path'           => '',
        // 单文件日志写入
        'single'         => false,
        // 独立日志级别
        'apart_level'    => [],
        // 最大日志文件数量
        'max_files'      => 0,
        // 使用JSON格式记录
        'json'           => false,
        // 日志输出格式化
        'format'         => '[%s][%s] %s',
        // 是否实时写入
        'realtime_write' => false,
    ],
    // 其它日志通道配置
],
Nach dem Login kopieren

Jeder Protokollkanal muss den Typparameter angeben. Dieser Parameter bestimmt die Schreibmethode der Protokolldatei. Wenn Sie andere Schreibmethoden angeben müssen, müssen Sie zusätzliche Erweiterungen installieren . . Sie können aber auch den gleichen Typ für verschiedene Protokollkanäle angeben, die anderen Konfigurationsparameter sind jedoch unterschiedlich, beispielsweise unterschiedliche Schreibpfade.

Unabhängig davon, welcher Protokollschreibtyp verwendet wird, sind die allgemeinen Konfigurationen, die jeder Protokollkanal unterstützen kann, wie folgt:

Protokolländerungen in der ThinkPHP6.0-Version

Die Verwendung des Level-Parameters ist Im Einklang mit der globalen Protokollkonfiguration wird das Standardprotokoll einmal nach Abschluss der Anforderung geschrieben. Wenn Sie Protokollinformationen in Echtzeit schreiben müssen, müssen Sie es einrichten.

'realtime_write'=>true,
Nach dem Login kopieren

Wenn es sich unter der Befehlszeile befindet, wird das Protokoll automatisch in Echtzeit geschrieben, unabhängig davon, ob es festgelegt ist.

Standardkanal

Definieren Sie den Standardkanal des Protokolls, indem Sie den Standardparameter festlegen, zum Beispiel:

'default'=>'file',
Nach dem Login kopieren

Level Kanal

Sie können verschiedene Protokollebenen festlegen und verschiedene Protokollkanäle verwenden.

'type_channel'=>[
// 对于error日志级别 同时写入file和email两个日志通道
'error'=>['file','email'],
]
Nach dem Login kopieren

Nach dem Festlegen eines Ebenenkanals werden Protokolle auf dieser Ebene nicht im Standardkanal aufgezeichnet. Bitte beachten Sie.

Der Protokollkanal erfordert die Mitarbeit des Protokolltreibers. Sie können den Protokolltreiber auch anpassen.

Kanal wechseln

Sie können den Standard-Schreibkanal des aktuellen Protokolls auch manuell wechseln, zum Beispiel:

Log::channel('email')->info('这是日志信息');
Nach dem Login kopieren

Unterstützt das Umschalten zur Verwendung mehrerer Kanäle Aufzeichnung, zum Beispiel:

Log::channel(['email', 'file'])->info('这是日志信息');
Nach dem Login kopieren

Protokollverarbeitung

Das Schreiben von Protokollen unterstützt die Ereignisüberwachung, zum Beispiel:

Event::listen('think\event\LogWrite', function($event) {
    if('file' == $event->channel) {
        $event->log['info'][] = 'test info';
    }
});
Nach dem Login kopieren

Der Parameter des Abschlusses ist ein LogWrite Ereignisklassenobjektinstanz: Sie können zwei Attribute erhalten:

Protokolländerungen in der ThinkPHP6.0-Version

Die Protokollinformationen sind ein zweidimensionales Array, das alle Ebenen von Protokollinformationen (die aufgezeichnet werden dürfen) unter dem enthält aktueller Protokollkanal.

Protokollinformationen formatieren

Das System stellt zwei Parameter zum Formatieren von Protokollinformationen bereit. Der erste ist time_format zum Anpassen des Zeitanzeigeformats Parameter des Protokollausgabeformats.

'channels'    =>    [
    'file'    =>    [
        'type'          => 'file', 
        'json'        =>true
        'file_size'   => 1024*1024*10,    
        'time_format'   =>    'Y-m-d H:i:s',
        'format'        =>    '[%s][%s]:%s',
    ],
],
Nach dem Login kopieren

Das erste %s des Formatparameters ist die Protokollaufzeichnungszeit (das Format der Protokollzeit wird durch den Parameter time_format definiert). Das zweite %s ist die Protokollebene. Das dritte %s sind die Protokollinformationen , die Reihenfolge kann nicht angepasst werden .

Protokoll im JSON-Format

kann die Aufzeichnung von Dateiprotokollen im JSON-Format unterstützen, was es für einige Protokollanalysetools von Drittanbietern bequemer macht, Protokollanalysen durchzuführen.

Fügen Sie in der Protokollkonfigurationsdatei

return [
    'default'      => 'file',
    'channels'    =>    [
        'file'    =>    [
            'type'          => 'file', 
            'json'        =>true
            'file_size'   => 1024*1024*10,    
        ],
    ],
];
Nach dem Login kopieren

hinzu, um die Protokollierung im JSON-Format über die CLI-Befehlszeile zu aktivieren.

和之前版本的区别在于,新版的每个日志信息都是一条JSON数据(旧版本是每个请求一条JSON数据)。

关闭日志

你可以通过调用close方法动态关闭日志写入。

// 关闭全局日志写入
Log::close();
// 关闭某个通道日志写入
Log::close('file');
Nach dem Login kopieren

如果调用close方法动态关闭日志,会自动调用clear方法清空日志。

清空日志

一旦执行save方法后,内存中的日志信息就会被自动清空,如果需要提前清空日志可以使用:

// 清空所有日志
Log::clear();
//清空通道日志可以使用
Log::clear('file');
Nach dem Login kopieren

在清空日志方法之前,你可以使用getLog方法获取内存中的日志。

// 获取(默认通道)日志
$logs = Log::getLog();
// 获取指定通道日志
$logs = Log::getLog('file');
Nach dem Login kopieren

日志清空仅仅是清空内存中的日志。

自定义驱动

日志通道需要自定义日志驱动,该日志驱动需要实现think\contract\LogHandlerInterface接口。

interface LogHandlerInterface
{
    /**
     * 日志写入接口
     * @access public
     * @param  array $log 日志信息
     * @return bool
     */
    public function save(array $log): bool;
}
Nach dem Login kopieren

众多ThinkPHP教程,尽在PHP中文网,欢迎在线学习!

本文转自:https://blog.thinkphp.cn/1186947

Das obige ist der detaillierte Inhalt vonProtokolländerungen in der ThinkPHP6.0-Version. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist die Ereignis-ID 6013 in Win10? Was ist die Ereignis-ID 6013 in Win10? Jan 09, 2024 am 10:09 AM

Die Protokolle von win10 können Benutzern helfen, die Systemnutzung im Detail zu verstehen, wenn sie nach ihren eigenen Verwaltungsprotokollen suchen. Was bedeutet dieser Code? Was ist Win10-Protokoll 6013: 1. Dies ist ein normales Protokoll. Die Informationen in diesem Protokoll bedeuten nicht, dass Ihr Computer neu gestartet wurde, sie geben jedoch an, wie lange das System seit dem letzten Start in Betrieb war. Dieses Protokoll erscheint einmal täglich pünktlich um 12 Uhr. Wie kann man überprüfen, wie lange das System läuft? Sie können systeminfo in cmd eingeben. Es gibt eine Zeile darin.

Logger-Puffergröße, wofür das Protokoll verwendet wird Logger-Puffergröße, wofür das Protokoll verwendet wird Mar 13, 2023 pm 04:27 PM

Die Funktion besteht darin, den Ingenieuren Feedback-Nutzungsinformationen und -aufzeichnungen zur Verfügung zu stellen, um die Problemanalyse zu erleichtern (wird während der Entwicklung verwendet). Da Benutzer selbst nicht oft Upload-Protokolle erstellen, sind sie für Benutzer nutzlos. Der Protokollierungspuffer ist ein kleiner, temporärer Bereich, der zur kurzfristigen Speicherung von Änderungsvektoren für Redo-Protokolle verwendet wird, die auf die Festplatte geschrieben werden sollen. Beim Schreiben eines Protokollpuffers auf die Festplatte handelt es sich um einen Stapel von Änderungsvektoren aus mehreren Transaktionen. Dennoch wird der Änderungsvektor im Protokollpuffer nahezu in Echtzeit auf die Festplatte geschrieben, und wenn die Sitzung eine COMMIT-Anweisung ausgibt, wird der Protokollpuffer-Schreibvorgang in Echtzeit ausgeführt.

Fehlerbehebung bei Fehlerprotokollproblemen mit Ereignis 7034 in Win10 Fehlerbehebung bei Fehlerprotokollproblemen mit Ereignis 7034 in Win10 Jan 11, 2024 pm 02:06 PM

Die Protokolle von Win10 können Benutzern helfen, die Systemnutzung im Detail zu verstehen, wenn sie nach ihren eigenen Verwaltungsprotokollen suchen. So lösen Sie das Win10-Protokollereignis 7034: 1. Klicken Sie auf „Start“, um die „Systemsteuerung“ zu öffnen. 2. Suchen Sie nach „Verwaltungstools“. 3. Klicken Sie auf „Dienste“. 4. Suchen Sie nach HDZBCommServiceForV2.0, klicken Sie mit der rechten Maustaste auf „Dienst stoppen“ und ändern Sie es zu „Manueller Start“

So verwenden Sie die Protokollierung in ThinkPHP6 So verwenden Sie die Protokollierung in ThinkPHP6 Jun 20, 2023 am 08:37 AM

Mit der rasanten Entwicklung des Internets und von Webanwendungen wird die Protokollverwaltung immer wichtiger. Bei der Entwicklung von Webanwendungen ist die Suche und Lokalisierung von Problemen ein sehr kritisches Thema. Ein Protokollierungssystem ist ein sehr effektives Werkzeug, das uns bei der Bewältigung dieser Aufgaben helfen kann. ThinkPHP6 bietet ein leistungsstarkes Protokollierungssystem, das Anwendungsentwicklern dabei helfen kann, in Anwendungen auftretende Ereignisse besser zu verwalten und zu verfolgen. In diesem Artikel wird erläutert, wie Sie das Protokollierungssystem in ThinkPHP6 verwenden und wie Sie das Protokollierungssystem verwenden

So zeigen Sie den Verlauf Ihres Medikamentenprotokolls in der Health-App auf dem iPhone an So zeigen Sie den Verlauf Ihres Medikamentenprotokolls in der Health-App auf dem iPhone an Nov 29, 2023 pm 08:46 PM

Mit dem iPhone können Sie Medikamente zur Gesundheits-App hinzufügen, um die Medikamente, Vitamine und Nahrungsergänzungsmittel, die Sie täglich einnehmen, zu verfolgen und zu verwalten. Anschließend können Sie eingenommene oder ausgelassene Medikamente protokollieren, wenn Sie eine Benachrichtigung auf Ihrem Gerät erhalten. Nachdem Sie Ihre Medikamente protokolliert haben, können Sie sehen, wie oft Sie sie eingenommen oder ausgelassen haben, um Ihren Gesundheitszustand besser im Auge zu behalten. In diesem Beitrag zeigen wir Ihnen, wie Sie den Protokollverlauf ausgewählter Medikamente in der Health-App auf dem iPhone anzeigen. Eine kurze Anleitung zum Anzeigen Ihres Medikamentenprotokollverlaufs in der Gesundheits-App: Gehen Sie zu Gesundheits-App>Durchsuchen>Medikamente>Medikamente>Medikament auswählen>Optionen&a

Detaillierte Erklärung des Protokollanzeigebefehls im Linux-System! Detaillierte Erklärung des Protokollanzeigebefehls im Linux-System! Mar 06, 2024 pm 03:55 PM

In Linux-Systemen können Sie den folgenden Befehl verwenden, um den Inhalt der Protokolldatei anzuzeigen: Befehl tail: Der Befehl tail wird verwendet, um den Inhalt am Ende der Protokolldatei anzuzeigen. Dies ist ein allgemeiner Befehl zum Anzeigen der neuesten Protokollinformationen. tail [Option] [Dateiname] Zu den häufig verwendeten Optionen gehören: -n: Geben Sie die Anzahl der anzuzeigenden Zeilen an. Der Standardwert ist 10 Zeilen. -f: Überwachen Sie den Dateiinhalt in Echtzeit und zeigen Sie den neuen Inhalt automatisch an, wenn die Datei aktualisiert wird. Beispiel: tail-n20logfile.txt#Zeigen Sie die letzten 20 Zeilen der Datei logfile.txt an. tail-flogfile.txt#Überwachen Sie den aktualisierten Inhalt der Datei logfile.txt in Echtzeit. Head-Befehl: Der Head-Befehl wird verwendet, um den Anfang anzuzeigen der Protokolldatei

Verstehen Sie die Bedeutung des Ereignisses ID455 in Win10-Protokollen Verstehen Sie die Bedeutung des Ereignisses ID455 in Win10-Protokollen Jan 12, 2024 pm 09:45 PM

Die Protokolle von win10 enthalten viele umfangreiche Inhalte. Viele Benutzer haben bei der Suche nach ihren eigenen Verwaltungsprotokollen einen Blick darauf geworfen. Was ist Ereignis-ID455 im Win10-Protokoll: 1. ID455 ist der Fehler <error>, der in <file> auftrat, als der Informationsspeicher die Protokolldatei öffnete.

Drei Befehle zum Anzeigen von Protokollen unter Linux Drei Befehle zum Anzeigen von Protokollen unter Linux Jan 04, 2023 pm 02:00 PM

Die drei Befehle zum Anzeigen von Protokollen unter Linux sind: 1. Befehl tail, der Änderungen im Dateiinhalt und Protokolldateien in Echtzeit anzeigen kann; 2. Befehl multitail, der mehrere Protokolldateien gleichzeitig überwachen kann; Dadurch können Änderungen am Protokoll schnell angezeigt werden, ohne den Bildschirm zu überladen.

See all articles