当然是正常安装Laravel10.x 和 php8.2
日志为什么要格式化?主要是为了方便人类阅读,把各种内容分开,黑客一样的滚滚日志可以一眼看清不再是梦想。
修改 config/logging.php,添加一个设定 daily_json
'daily_json' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => 'debug',
'days' => 14, // 保留日志的天数
'tap' => [App\Logging\CustomizeFormatter::class],
],
在这个配置中,tap
选项用于定制日志格式化。我们将在下一步创建 CustomizeFormatter
类来设置 JSON 格式。
在你的 Laravel 应用中创建一个新的类,例如 App\Logging\CustomizeFormatter
。你可以在 app/Logging
目录下创建这个类(如果这个目录不存在,你需要先创建它)。
namespace App\Logging;
use Monolog\Formatter\JsonFormatter;
class CustomizeFormatter
{
/**
* 自定义日志格式。
*
* @param \Monolog\Logger $logger
* @return void
*/
public function __invoke($logger)
{
foreach ($logger->getHandlers() as $handler) {
$handler->setFormatter(new JsonFormatter());
}
}
}
这个类将遍历所有日志处理器,并为它们设置 JsonFormatter
。
配置修改后,运行以下命令以清除配置缓存:
php artisan config:clear
按照这些步骤,Laravel 会每天创建一个新的日志文件,并且日志内容将以 JSON 格式记录。这些日志文件将保存在 storage/logs
目录下,并根据上面配置的天数进行自动轮换。
简简单单,结束