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

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

Kalyno
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 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年前

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