13 日志处理
知识梳理
1 日志记录和写入 think\Log类提供,通常使用门面模式调用
2 不要在日志写入之后使用 exit 等中断操作,会导致写入失败。
3 新版本的日志支持多通道
4 生成的日志存在于 runtime 目录下
5 调试模式下,生成的日志带有哪一行出错了 非调试模式则没有
6 系统发生异常后,会自动写入error级别的日志
7 默认情况下不会记录HTTP日志 避免被攻击写入大量的日志
一 日志配置
1)全局配置参数5个
// 默认日志记录通道 'default' => env('log.channel', 'file'),
// 日志记录级别 'level' => [],
// 日志类型记录的通道 'type_channel' => [],
// 关闭全局日志写入 'close' => false,
// 全局日志处理 支持闭包 'processor' => null,
2)file类型配10个
// 日志记录方式 type' => 'File',
// 日志保存目录 'path' => '',
// 单文件日志写入 'single' => false,
// 独立日志级别 'apart_level' => [],
// 最大日志文件数量 'max_files' => 0,
// 使用JSON格式记录 'json' => true,
// 日志处理 'processor' => null,
// 关闭通道日志写入 'close' => false,
// 日志输出格式化 'format' => '[%s][%s] %s',
// 是否实时写入 'realtime_write' => false,
二 日志写入
1)常用方法
Log::record(); //1 写入日志 [ 先写入内存中,执行完成后再写入磁盘 ] Log::write(); //2 写入日志 [ 实时写入磁盘 ]
Log::clear(); //3 清除内存中的日志 Log::getLog(); //4 获取内存中的日志 Log::diy(); //5 自定义日志 diy day 名字随便起
2)助手函数
Log::error('错误日志!'); //1 快捷方法
Log::record('错误日志!', 'error');//2 参数传入
trace('错误日志!', 'error'); //3 助手函数
3)日志级别
debug , info , notice , warning , error , critical , alert , emergency ,
ThinkPHP额外增加了一个 sql 日志级别仅用于记录 SQL 日志(并且仅当开启数据库调试模式有效)。
4)上下文信息
Log::info('日志信息{user}', ['user' => '流年']);
2021-01-14T21:10:23+08:00][info] 日志信息流年
实际写入日志的时候, {user} 会被替换为流年。

浙公网安备 33010602011771号