ThinkPHP 6.0 默认文件日志,可通过 config/log.php 的 default 和 channels 灵活切换为 SocketLog、Monolog 等;文件日志支持自定义路径、单文件、SQL 分离及实时写入;SQL 日志需数据库开启 debug 和 log_sql,并在 level 中声明;Monolog 远程日志需安装扩展、自定义驱动并配置通道。

ThinkPHP 6.0 默认使用文件方式记录日志,但支持灵活配置多种输出方式,关键在于修改 config/log.php 中的 channels 和 default 设置。
设置默认日志通道
在 config/log.php 中指定默认通道名称:
-
'default' => 'file':使用内置文件驱动(默认) -
'default' => 'socket':切换到 SocketLog 实时调试(需提前注册 socket 通道) -
'default' => 'monolog':对接 Monolog 扩展(如远程 Socket 日志)
配置文件日志(最常用)
编辑 channels['file'] 数组,常用选项包括:
-
'type' => 'File':固定值,表示文件驱动 -
'path' => runtime_path('log').'/admin/':自定义日志路径(可选) -
'single' => true:启用单文件模式(所有日志写入一个文件,如single.log) -
'apart_level' => ['error', 'sql']:让 error 和 sql 级别各自独立成文件(如error.log、sql.log) -
'realtime_write' => true:开启实时写入(避免请求中断导致日志丢失)
启用 SQL 专用日志
SQL 日志属于特殊类型,需单独配置级别和通道:
- 确保
'level'数组中包含'sql',例如:'level' => ['info', 'error', 'sql'] - 数据库配置中开启调试:
'debug' => true和'log_sql' => true(config/database.php) - SQL 日志会按
apart_level规则输出到对应文件(如20261029_sql.log),内容含占位符与绑定参数
接入 Monolog 远程日志(负载均衡场景)
适用于多服务器统一收集日志:
- 安装依赖:
composer require monolog/monolog - 新建自定义驱动类(如
app/common/log/Monolog.php),继承LogHandlerInterface,内部使用SocketHandler发送日志 - 在
log.php的channels中添加该驱动配置,指定目标 IP 和端口 - 将
default切换为该通道名,即可将日志实时发往中心日志服务器
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











