默认情况下,laravel将日志文件保存到位于/storage/logs/laravel-2016-02-23.log
我的问题是如何每天获取一个新的日志文件并将/storage/logs/
之类的日志文件存储到当前日期,因此我每天都需要将新的日志文件保存到Illuminate\Foundation\Bootstrap\ConfigureLogging
我认为我们可以通过扩展默认的{{1}} bootstraper类来做到这一点,但我不知道我该怎么做
如果有人能帮助我,我将非常感激。
提前致谢。
答案 0 :(得分:11)
实际上比这简单得多。在config/app.php
中,您会看到以下行:
'log' => 'single',
更接近文件的底部。 Laravel默认使用single
方法,该方法将所有错误存储在单个展开文件中。如果您将此行更改为:
'log' => 'daily',
它会告诉Laravel你更喜欢有多个日志,每个日志都以错误发生的日期为后缀。
还有其他一些方法,所以请务必查看official documentation以获取更多信息。
答案 1 :(得分:7)
在我使用的 Laravel 5.6 版本中,用于记录的配置文件为 config / logging.php
您将在以下部分找到
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['single'],
],
'single' => [
'driver' => 'single',
'path' => storage_path('logs/laravel.log'),
'level' => 'debug',
],
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => 'debug',
'days' => 7,
],
...
]
更改行
'channels' => ['single'],
进入
'channels' => ['daily'],
然后它将是:
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['daily'],
],
'single' => [
'driver' => 'single',
'path' => storage_path('logs/laravel.log'),
'level' => 'debug',
],
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => 'debug',
'days' => 7,
],
...
]
它将每天在日志目录中以 laravel-2018-08-13.log
格式创建日志文件。
日志目录将类似于
答案 2 :(得分:2)
只需打开.env文件并更改
LOG_CHANNEL=stack
到
LOG_CHANNEL=daily
然后运行命令
php artisan config:cache
现在我认为您的问题会解决。
答案 3 :(得分:1)
laravel 的每日日志没问题,但是在第一年,您将拥有 365 个 django_ace
文件。我的方法是在 laravel.log
频道的 'path'
上执行以下操作。
'single'
通过这种方式,您可以按年/月/日组织日志。
答案 4 :(得分:0)
您还可以按年/月文件夹划分每日日志(对于Laravel> = 5.6)
<?php
// ./config/logging.php
return [
/*
| ./storage/logs/
|
| ├── 2018
| │ └── 12
| │ ├── laravel-2018-12-30.log
| │ └── laravel-2018-12-31.log
| └── 2019
| ├── 01
| │ ├── laravel-2019-01-01.log
| │ ├── laravel-2019-01-02.log
|
| .....
|
| │ └── laravel-2019-01-31.log
|
*/
'default' => env('LOG_CHANNEL', 'stack'),
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['daily'], // set 'daily' channel
],
'daily' => [
'driver' => 'daily',
// add dynamic folder structure
'path' => storage_path('logs/' . date('Y/m/') . 'laravel.log'),
'level' => 'debug',
// set the maximum number of days in a month
'days' => 31,
],
],
];
完整示例-https://gist.github.com/andriichuk/893be964de09a96d90d33b56c9b32333