laravel 自定义log输出格式
时间: 2023-07-06 10:36:09 浏览: 60
在 Laravel 中,你可以通过自定义 Monolog 实例的处理程序来自定义日志输出格式。以下是一个示例代码:
1. 打开 config/logging.php 文件,添加以下代码:
```php
'format' => '[%datetime%] %channel%.%level_name%: %message% %context% %extra%',
```
2. 在 `bootstrap/app.php` 中,找到 `$app->configureMonologUsing` 语句并替换为以下代码:
```php
$app->configureMonologUsing(function($monolog) use ($app) {
$formatter = new \Monolog\Formatter\LineFormatter($app['config']['logging.format']);
foreach ($monolog->getHandlers() as $handler) {
$handler->setFormatter($formatter);
}
});
```
这将为所有 Monolog 处理程序设置自定义的日志输出格式。
你也可以更改 `$app['config']['logging.format']` 的值来自定义日志输出格式。
相关问题
Laravel.log 格式修改
Laravel 的日志格式可以通过修改 `config/logging.php` 文件中的 `log_max_files` 和 `log_level` 配置来进行修改。
1. 修改日志文件的最大数量
默认情况下,Laravel 日志文件的最大数量为 5 个,超过这个数量后,最早的日志文件将会被删除。您可以通过修改 `log_max_files` 配置来修改这个数量,例如,将最大数量改为 10:
```php
'log_max_files' => 10,
```
2. 修改日志级别和格式
Laravel 的日志级别和格式可以通过修改 `config/logging.php` 文件中的 `stack` 配置来进行修改。例如,将日志级别改为 `debug`,并将日志格式修改为 JSON 格式:
```php
'stack' => [
'driver' => 'stack',
'channels' => ['single'],
'level' => 'debug',
'formatter' => \Monolog\Formatter\JsonFormatter::class,
'formatter_with' => [
'dateFormat' => 'Y-m-d H:i:s',
],
],
```
在这个示例中,我们将日志级别改为 `debug`,并将日志格式修改为 `JsonFormatter`,这样就可以将日志保存成 JSON 格式。您也可以使用其他的日志格式,例如 `LineFormatter` 或 `HtmlFormatter`。
spdlog 输出格式
spdlog是一个快速的C++日志库,支持多线程,异步日志记录,支持多种日志格式和输出目标。spdlog支持的输出格式包括:
1. %v:日志消息
2. %n:换行符
3. %d:日期时间
4. %^:改变文本颜色
5. %s:源文件名
6. %t:线程ID
7. %P:进程ID
8. %L:日志级别
9. %!:错误码
10. %T:时间戳
11. %^[%L]%$:根据日志级别改变文本颜色
12. %^[%Y-%m-%d %H:%M:%S.%e][%L]%$:带有日期时间和日志级别的日志消息
除了以上格式,spdlog还支持自定义格式。