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} 会被替换为流年。

 

 

 

 

posted @ 2020-11-11 15:31  棉花糖88  阅读(103)  评论(0)    收藏  举报