Laravel Log Enhancer 是 Laravel 5.6 的一個擴充套件包,可以在 Laravel 日誌中新增額外的資料。 得益於 Laravel 5.6 中日誌的更新,這個包利用這些特性擴充套件日誌記錄並新增資料,例如請求頭、記憶體使用情況、會話資訊和其它資料 。
你可以通過修改 config/logging.php
中的 tap
屬性,來新增 LogEnhancer
到你的日誌通道:
'production_stack' => [
'driver' => 'stack',
'tap' => [Freshbitsweb\LaravelLogEnhancer\LogEnhancer::class],
'channels' => ['daily', 'slack'],
],
配置日誌通道後,下面是一條包含預設額外資訊的日誌示例:
[2018-03-30 05:07:23] local.INFO: Testing log {"inputs":[],"session":{"_token":"bZXCPViCzmaULIO6GsdLBbveC1yd3BbyH31zfT8c","_previous":{"url":"http://log-enhancer-demo.test"},"_flash":{"old":[],"new":[]}},"url":"/","ip":"127.0.0.1","http_method":"GET","server":"","referrer":null}
下面是增強日誌記錄的配置選項(包含了預設配置選項的資訊):
<?php
return [
'log_request_details' => true,
'log_input_data' => true,
'log_request_headers' => false,
'log_session_data' => true,
'log_memory_usage' => false,
'log_git_data' => false,
// 你可以明確不記錄到日誌中的使用者輸入資訊
'ignore_input_fields' => ['password', 'confirm_password']
];
特別注意 ignore_input_fields
選項,避免日誌中記錄客戶的敏感資訊!!!例如使用者密碼或信用卡賬號。
你需要執行互動模式命令 artisan vendor:publish
, 以啟用上面的自定義配置:
php artisan vendor:publish --tag=laravel-log-enhancer-config
在一個基於 Laravel 5.6 的專案中,你可以使用如下命令利用 composer 來安裝這個擴充套件包:
composer require freshbitsweb/laravel-log-enhancer
由於 Laravel 的包自動發現 機制,你只需要安裝這個包並根據你的程式需要進行配置就可以了。
瞭解更多
詳情請檢視該包的 GitHub 官方倉庫。需要注意的是,這個擴充套件包依賴於 Laravel 5.6 的新日誌系統,所以你只能在該版本或者更新版本中使用它。
它首先出現在 Laravel News 上。
更多現代化 PHP 知識,請前往 Laravel / PHP 知識社群