如何在Yii2中記錄「已棄用警告」而不將其顯示
P粉328911308
P粉328911308 2023-09-05 16:40:49
0
1
537
<p>為了從PHP 8.0切換到8.1,我遇到了很多PHP <em>Deprecated Warnings</em>的顯示。我可以簡單地關閉它們,但最好是為了PHP 8.2修復它們,所以我嘗試在我的應用程式在PHP 8.1中運行時獲取這些警告的靜默記錄器。我需要在Yii 2和PHP中做哪些設定?這可行嗎? </p> <p>當我設定PHP為<code>error_reporting( E_ALL );</code>時,Yii 2應用程式會顯示錯誤。這不是「靜默」的方式。 </p> <p>Yii2設定:檔案<em>main.php</em></p> <pre class="brush:php;toolbar:false;">'targets' => [ [ 'class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning'], ],</pre> <p>我如何只記錄這些PHP警告而不停止程式碼運行? </p>
P粉328911308
P粉328911308

全部回覆(1)
P粉546179835

試試這個:

'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設定檔並重新啟動您的網路伺服器以使變更生效。 透過這些更改,Yii2將將PHP警告記錄到指定的日誌檔案中,同時允許程式碼的執行繼續進行。您可以查看日誌檔案(php_warnings.log)以收集和處理PHP警告。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!