日志写入
版本 | 新增功能 |
---|---|
5.0.10 | 增加record_trace 配置参数用于记录trace信息到日志 |
5.0.4 | 命令行模式下日志自动定时写入 |
5.0.4 | debug 日志类型仅用于调试模式记录 |
手动记录
一般情况下,系统的日志记录是自动的,无需手动记录,但是某些时候也需要手动记录日志信息,Log类提供了3个方法用于记录日志。
方法 | 描述 |
---|---|
Log::record() | 记录日志信息到内存 |
Log::save() | 把保存在内存中的日志信息(用指定的记录方式)写入 |
Log::write() | 实时写入一条日志信息 |
由于系统在请求结束后会自动调用Log::save
方法,所以通常,你只需要调用Log::record
记录日志信息即可。
record方法用法如下:
Log::record("测试日志信息");
默认的话记录的日志级别是INFO,也可以指定日志级别:
Log::record("测试日志信息,这是警告级别","notice");
采用record方法记录的日志信息不是实时保存的,如果需要实时记录的话,可以采用write方法,例如:
Log::write("测试日志信息,这是警告级别,并且实时写入","notice");
V5.0.4+版本开始,为避免内存溢出,在命令行下面执行的话 日志信息会定时自动写入。
日志级别
ThinkPHP对系统的日志按照级别来分类,并且这个日志级别完全可以自己定义,系统内部使用的级别包括:
- log 常规日志,用于记录日志
- error 错误,一般会导致程序的终止
- notice 警告,程序可以运行但是还不够完美的错误
- info 信息,程序输出信息
- debug 调试,用于调试信息
- sql SQL语句,用于SQL记录,只在数据库的调试模式开启时有效
系统提供了不同日志级别的快速记录方法,例如:
Log::error("错误信息");
Log::info("日志信息");
// 和下面的用法等效
Log::record("错误信息","error");
Log::record("日志信息","info");
还封装了一个助手函数用于日志记录,例如:
trace("错误信息","error");
trace("日志信息","info");
也支持指定级别日志的输入,需要配置信息:
"log" => [
"type" => "File",
// 日志记录级别,使用数组表示
"level" => ["error"],
],