suchen

Heim  >  Fragen und Antworten  >  Hauptteil

So protokollieren Sie eine „veraltete Warnung“ in Yii2, ohne sie anzuzeigen

<p>Beim Wechsel von PHP 8.0 auf 8.1 sind mir viele PHP-Warnungen <em>Veraltete Warnungen</em> aufgefallen. Ich könnte sie einfach ausschalten, aber es wäre besser, sie für PHP 8.2 zu beheben, deshalb versuche ich, einen stillen Logger dieser Warnungen zu bekommen, wenn meine Anwendung in PHP 8.1 läuft. Welche Einstellungen muss ich in Yii 2 und PHP vornehmen? Ist das möglich? </p> <p>Wenn ich PHP auf <code>error_reporting( E_ALL );</code> setze, zeigt die Yii 2-Anwendung Fehler an. Dies ist nicht der „stille“ Weg. </p> <p>Yii2-Konfiguration: Datei<em>main.php</em></p> <pre class="brush:php;toolbar:false;">'targets' => [ 'class' => 'yiilogFileTarget', 'levels' => ['error', 'warning'], ],</pre> <p>Wie kann ich diese PHP-Warnungen einfach protokollieren, ohne die Ausführung des Codes zu stoppen? </p>
P粉328911308P粉328911308444 Tage vor558

Antworte allen(1)Ich werde antworten

  • P粉546179835

    P粉5461798352023-09-06 00:08:27

    试试这个:

    'log' => [
        'traceLevel' => YII_DEBUG ? 3 : 0,
        'targets' => [
            [
                'class' => 'yii\log\FileTarget',
                'categories' => ['yii\base\*'],
                'levels' => ['error', 'warning','deprecated'],
                'logFile' => '@runtime/logs/php_warnings.log',
            ],
    ],

    现在,PHP警告将被记录,而不会停止代码的执行。然而,为了实现完全“无声”记录PHP警告的方式,您需要调整PHP错误报告的设置。

    打开您的PHP配置文件(php.ini)。

    找到error_reporting指令并修改它以包括E_WARNING。例如:

    error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE | E_WARNING

    通过包括E_WARNING,您确保记录PHP警告,但其他类型的错误不会记录。

    保存PHP配置文件并重新启动您的Web服务器以使更改生效。 通过这些更改,Yii2将将PHP警告记录到指定的日志文件中,同时允许代码的执行继续进行。您可以查看日志文件(php_warnings.log)以收集和处理PHP警告。

    Antwort
    0
  • StornierenAntwort