Heim  >  Artikel  >  PHP-Framework  >  Wie schreibe ich Protokolle im Yii-Framework?

Wie schreibe ich Protokolle im Yii-Framework?

angryTom
angryTomOriginal
2020-01-21 18:59:423284Durchsuche

Um das Debuggen des Programms und das Aufzeichnen von Informationen zu erleichtern, schreiben wir die erforderlichen Informationen in eine Datei, die Protokolldatei. Nehmen wir an Schauen Sie es sich gemeinsam an.

Wie schreibe ich Protokolle im Yii-Framework?

Wie schreibe ich Protokolle im yii-Framework?

1. Um log in Yii zu verwenden, müssen Sie zunächst die Konfigurationsdatei ändern:

'log' => [
    'traceLevel' => YII_DEBUG ? 3 : 0,
    'targets' => [
        [
            'class' => 'yii\log\FileTarget',
            'levels' => ['error', 'warning'],
            'logVars' => ['_GET'],
        ],
    ],
],

Zielparameter-Erklärung:

● Klasse gibt die Verwendung von Dateien zum Speichern von Protokollen an

● Ebenen geben das Speichern von Fehler- und Warnprotokollen an

● logVars gibt das Speichern von Get-Parametern an

Wenn logVars ist nicht angegeben, GET POST COOKIE wird SESSION SERVER und andere Parameter gespeichert, die sich auf unsere Anzeige auswirken. Wir können es in

'logVars' => ['*'], // 只记录message

ändern. 2. Verwenden Sie Folgendes:

Yii::error($message);
Yii::warning($message);

um das Protokoll in verschiedene Dateien zu schreiben

Methode 1: Weisen Sie zuerst die Protokolldateiadresse zu, unter der das Protokoll aufgezeichnet werden muss, und schreiben Sie dann das Protokoll

Yii::$app->log->targets[0]->logFile = Yii::getAlias('@runtime').DIRECTORY_SEPARATOR.'logs'.DIRECTORY_SEPARATOR.'app2.log';
Yii::warning($message);

Methode 2 (empfohlen): Ändern Sie die Konfigurationsdatei main.php

'log' => [
    'traceLevel' => YII_DEBUG ? 3 : 0,
    'targets' => [
        [
            'class' => 'yii\log\FileTarget',
            'levels' => ['error', 'warning'],
            'logVars' => ['*'],
            //'categories' => ['application'],
            //'logFile' => '@runtime/logs/app.log',
        ],
        [
            'class' => 'yii\log\FileTarget',
            'categories' => ['pay'],
            'levels' => ['error', 'warning'],
            'logVars' => ['*'],
            'logFile' => '@runtime/logs/pay.log',
        ],
        [
            'class' => 'yii\log\FileTarget',
            'categories' => ['order'],
            'levels' => ['error', 'warning'],
            'logVars' => ['*'],
            'logFile' => '@runtime/logs/order.log',
        ],
    ],
],

Verwenden Sie:

Yii::warning($message,'pay')

Die Nachricht hier wird aufgezeichnet in pay.log, und natürlich wird es auch in der Standardeinstellung aufgezeichnet. Sie können diesen Code in

in app.log auskommentieren: //'categories' => ['application'],, sodass es nur in den jeweiligen Protokollen aufgezeichnet wird.

Aber dies führt auch dazu, dass einige Fehlerinformationen nicht in app.log aufgezeichnet werden.

Das obige ist der detaillierte Inhalt vonWie schreibe ich Protokolle im Yii-Framework?. 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