为什么我的.log 没有按照日期进行分割呢?

请教下各位大佬,按照前面小节一步步走下来,到调试邮件发送的log日志还是记录在同一个laravel.log文件中,而不是按照日期进行切分的,是需要在哪里进行配置嘛?我往前翻了好几遍教程都没有相关的设置!

Kalyno
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

现在 Laravel 6.x 的日志文件会默认放在一个文件里,具体信息可以看文档 日志

默认情况下,Laravel 将使用 stack 去记录日志消息。

而在 config/logging 中查看 stack 的选项,可以看到:

config/logging.php

'stack' => [
    'driver' => 'stack',
    'channels' => ['single'],
    'ignore_exceptions' => false,
],

这里使用的是 single ,也就是把日志信息全部放入一个文件中。

要修改成按日期分类非常简单:

第一种方法:

直接在 stackchannels 选项中加入 daily 。即可:

config/logging.php

'stack' => [
    'driver' => 'stack',
    'channels' => ['single', 'daily],
    'ignore_exceptions' => false,
],

第二种方法:

由于 config/logging 文件中是通过 default 来记录日志消息,我们来看一下 default 的选项:

config/logging.php

 'default' => env('LOG_CHANNEL', 'stack)

他是通过 .env 文件中的 LOG_CHANNEL 这个参数记录日志消息,再来看看 .env 文件中的 LOG_CHANNEL 这个参数:

.env

LOG_CHANNEL=stack

他这里默认也是通过 stack 来记录消息,将选项改成 daily 即可按日期分类。

.env

LOG_CHANNEL=daily

说了这么多,关键是根据 config/logging 中的 default 选项来修改。

3年前 评论
Kalyno (楼主) 3年前
讨论数量: 1

现在 Laravel 6.x 的日志文件会默认放在一个文件里,具体信息可以看文档 日志

默认情况下,Laravel 将使用 stack 去记录日志消息。

而在 config/logging 中查看 stack 的选项,可以看到:

config/logging.php

'stack' => [
    'driver' => 'stack',
    'channels' => ['single'],
    'ignore_exceptions' => false,
],

这里使用的是 single ,也就是把日志信息全部放入一个文件中。

要修改成按日期分类非常简单:

第一种方法:

直接在 stackchannels 选项中加入 daily 。即可:

config/logging.php

'stack' => [
    'driver' => 'stack',
    'channels' => ['single', 'daily],
    'ignore_exceptions' => false,
],

第二种方法:

由于 config/logging 文件中是通过 default 来记录日志消息,我们来看一下 default 的选项:

config/logging.php

 'default' => env('LOG_CHANNEL', 'stack)

他是通过 .env 文件中的 LOG_CHANNEL 这个参数记录日志消息,再来看看 .env 文件中的 LOG_CHANNEL 这个参数:

.env

LOG_CHANNEL=stack

他这里默认也是通过 stack 来记录消息,将选项改成 daily 即可按日期分类。

.env

LOG_CHANNEL=daily

说了这么多,关键是根据 config/logging 中的 default 选项来修改。

3年前 评论
Kalyno (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!