日志配置
位置是:config\log.php
<?phpreturn [// 日志记录方式,内置 file socket 支持扩展'type' => 'File',// 日志保存目录'path' => '',// 日志记录级别'level' => [],// 单文件日志写入'single' => false,// 独立日志级别'apart_level' => [],// 最大日志文件数量'max_files' => 0,// 是否关闭日志写入'close' => false,];
可以为每个模块单独配置日志类型,需要在模块的配置目录下 log.php 中配置,一般不需要去改动
日志写入
手动记录
一般情况下,系统的日志记录是自动的,无需手动记录,但是某些时候也需要手动记录日志信息,Log类提供了3个方法用于记录日志。
| 方法 | 描述 |
|---|---|
| record() | 记录日志信息到内存 |
| save() | 把保存在内存中的日志信息(用指定的记录方式)写入,并清空内存中的日志 |
| write() | 实时写入一条日志信息,会触发save操作 |
V5.1.15+版本开始,write方法不会触发save操作
由于系统在请求结束后会自动调用Log::save方法,所以通常,你只需要调用Log::record记录日志信息即可。
例子:
<?phpnamespace app\test2\controller;use think\Controller;use think\facade\Log;class Demo2 extends Controller{// 测试记录日志public function fun1(){Log::write('测试日志');}}
然后使用 postman 发送这个请求,再去查看记录的日志:默认情况下日志被记录在 runtime/log/ 文件夹下,按照日期会被自动管理。
默认的日志级别是 [info],我也可以手动设置.
<?php// 可以设置日志的级别public function fun2(){Log::write('测试日志信息,这是警告级别,并且实时写入','notice');}
日志级别
日志的级别从低到高依次为:
- debug:调试级别
- info:默认级别
- notice:提醒级别
- warning:警告级别
- error:错误级别
- critical:临界的批评的关键的危急的
- alert:
- emergency:紧急情况
- sql日志级别仅用于记录SQL日志(并且仅当开启数据库调试模式有效)。
系统提供了不同日志级别的快速记录方法,例如:
<?phpLog::error('错误信息');Log::info('日志信息');// 和下面的用法等效Log::record('错误信息','error');Log::record('日志信息','info');
还封装了一个助手函数用于日志记录,例如:
<?phptrace('错误信息','error');trace('日志信息','info');
事实上,你可以增加自定义的日志类型,例如:
<?phpLog::record('自定义错误信息','diy');trace('自定义错误信息','diy');
也支持指定级别日志的输入,需要配置信息:
<?phpreturn ['type' => 'File',// 日志记录级别,使用数组表示'level' => ['error','alert'],],
上面的配置表示只记录error和alert级别的日志信息。
默认情况下是不会记录HTTP异常日志(避免受一些攻击的影响写入大量日志),除非你接管了系统的异常处理,重写了report方法。
