ThinkPHP6 的日志通道 default 参数指定默认日志驱动及配置组合,决定日志写入目标与方式;它通过路由日志请求、隔离多环境行为、支持快速降级三方面生效,不控制日志级别或格式。

ThinkPHP6 的日志通道 default 参数,本质是指定当前应用默认使用的日志写入驱动和配置组合,它不直接控制单条日志内容,而是决定“往哪儿写、怎么写、写成什么样”。
这个参数位于 config/log.php 配置文件中,典型写法是:
'default' => 'file',
它的作用体现在三个层面:
-
路由日志请求:当调用
Log::info()、Log::error()等方法时,框架不会自己决定用哪个驱动,而是查default值,然后去channels数组里找同名的配置项(比如'file' => [...]),再按该配置初始化对应驱动(如FileDriver)。 -
隔离多环境行为:开发环境可设
'default' => 'file',生产环境可设'default' => 'rocket'(对接日志服务),只需改这一处,所有Log::xxx()调用自动切换目标,无需修改业务代码。 -
支持快速降级:若某天
rocket通道因网络异常持续失败,临时把default改回'file',日志立刻回落到本地文件,不影响主流程。
注意两个常见误区:
立即学习“PHP免费学习笔记(深入)”;
-
default不是日志级别(级别由level或调用时的Log::warning()等方法决定); - 它也不影响日志格式(格式由对应 channel 下的
format或json选项控制)。
如果你在 log.php 里看到类似这样的结构:
'channels' => [
'file' => [
'type' => 'File',
'path' => runtime_path('log/'),
'level' => 'debug',
],
'rocket' => [
'type' => 'Rocket',
'host' => 'https://log.example.com',
],
],
'default' => 'file',那就表示:所有未显式指定 channel 的日志调用,都走 file 这套规则——写进 runtime/log/ 目录下的文件,且最低记录 debug 及以上级别。
不复杂但容易忽略。



















