日志系统是非常重要的但是也容易被忽视的部分。让我们来探讨一下,怎么设计一个日志系统。
1:打印FATAL
2:打印FATAL和WARNING
4:打印FATAL、WARNING、NOTICE (线上正常运行时的配置)
8:打印FATAL、WARNING、NOTICE、TRACE (线上异常时使用该配置)
16:打印FATAL、WARNING、NOTICE、TRACE、DEBUG (测试环境配置)
对于warning和fatal级别的日志,建议打印在 app.wf.log文件里面。
而对于其他级别的日志, 建议打印在 app.log 文件里。
这样一来,我们可以通过查看不同的文件,来查看不同级别的日志,对于比较严重的错误/警告日志,我们通过查看app.wf.log文件来定位问题。
日志级别(Log Level)、时间、文件的物理位置:行号、错误码(errno)、日志Id(logId)、请求url、用户(user)、 字符串信息(msg)、数据(data)、应用名称(appName)、客户端ip、服务器ip。
str:相当于一个独一无二的tag,方便grep查看,表明是什么地方/功能 打的日志
data: 需要打印的其他数据,一般是一个array
Logger::fatal('LoginErr', 1, $logData);