# 日志处理
日志记录和写入由`\lib\Log`类完成,通常我们使用`lib\facade\Log`类进行静态调用,日志使用monolog文件方式记录,其他方式请自行扩展
> 日志遵循`PSR-3`规范
## 日志配置
日志的配置文件是配置文件目录下的`log.php`文件,系统在进行日志写入之前会读取该配置文件进行初始化。
日志的全局配置参数
下面是一个`log.php`配置示例:
~~~
// +----------------------------------------------------------------------
// | 日志设置
// +----------------------------------------------------------------------
return [
// 日志保存目录
'path' => '',
// 日志通道名
'channel' => 'app',
// 日志记录级别
'level' => 'debug',
// 最大日志保留天数,超过删除 0无限制
'max_files' => 0,
// 文件权限
'file_permission' => 0666,
// 是否关闭日志写入
'close' => false,
];
~~~
。
## 日志写入
### 手动记录
一般情况下,系统的日志记录是自动的,无需手动记录,但是某些时候也需要手动记录日志信息,Log类提供了3个方法用于记录日志。
| 方法 | 描述 |
| --- | --- |
| record() | 记录日志信息到内存 |
~~~
/**
* 记录日志信息
* @access public
* @param mixed $message 日志信息
* @param string $level 日志级别
* @param array $context 替换内容
* @param string $fileName 文件名
* @return $this
*/
public function record($message, $level = 'info', array $context = [],$fileName = '')
~~~
record方法用法如下:
~~~
Log::record('测试日志信息');
~~~
默认记录的日志级别是`info`,也可以指定日志级别:
~~~
Log::record('测试日志信息','notice',['id' => 1]);
~~~
### 日志级别
对系统的日志按照级别来分类记录,按照`PSR-3`日志规范,日志的级别从低到高依次为:`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`
> 系统发生异常后记录的日志级别是`error`
系统提供了不同日志级别的快速记录方法,例如:
~~~
Log::error('错误信息');
Log::info('日志信息');
// 和下面的用法等效
Log::record('错误信息','error');
Log::record('日志信息','info');
Log::debug('调试信息');
Log::notice('调试信息');
Log::warning('调试信息');
~~~
示例
指定文件名
Log::info Log::notice 可以指定文件名
~~~
Log::info('支付记录',$data,'pay');
~~~
生成的日志文件如
pay-info-2020-09-10.log