php写入记录日志,日志写入 · ThinkPHP5.0完全开发手册 · 看云

## 日志写入

|版本|新增功能|

|---|---|

|5.0.16|增加文件日志自动清理功能支持|

|5.0.13|增加单文件日志写入功能|

|5.0.10|增加`record_trace`配置参数用于记录trace信息到日志|

|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'],

],

~~~

### 单文件日志

在某些情况下,需要对日志记录进行分析和处理,那么开启单文件日志写入就会方便分析。

~~~

'log' => [

'type' => 'File',

// 日志记录级别,使用数组表示

'single' => true,

],

~~~

开启后,日志文件不再区分日期文件写入,而是统一写入到`single.log`文件中。

### 日志自动清理

`V5.0.16+`版本开始,支持文件日志的自动清理功能,你可以设置

~~~

'max_files'=> 30

~~~

则日志文件最多只会保留30个,超过会自动清理较早的日志文件,避免日志文件长期写入占满磁盘空间。

>[danger] 开启自动清理功能后,不会生成日期子目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值