建议使用Think PHP框架的日志写入方法,因为Think PHP的日志写入函数可以分为实时写入和非实时写入,项目上线之后我们肯定倾向去使用非实时写入。
下图为日志程序Log的位置:
如下图所示:
think php 日志记录方式默认为记录文本文件(File);
是否记录日志可以通过LOG_RECORD设置;
LOG_LEVEL为在开启记录日志的情况下需要记录的日志级别;
下面的LOG_FILE_SIZE为允许记录的日志大小;
LOG_EXCEPTION_RECORD为是否记录异常日志;
以上笼统的介绍了LOG的配置信息,接下来介绍使用日志的时候一些需要注意的地方。
think php的日志级别包括以下几类:
- EMERG 严重错误,导致系统崩溃无法使用
- ALERT 警戒性错误, 必须被立即修改的错误
- CRIT 临界值错误, 超过临界值的错误
- ERR 一般性错误
- WARN 警告性错误, 需要发出警告的错误
- NOTICE 通知,程序可以运行但是还不够完美的错误
- INFO 信息,程序输出信息
- DEBUG 调试,用于调试信息
- SQL SQL语句,该级别只在调试模式开启时有效
正如上面LOG_TYPE中指定的样子,只有允许记录该类日志的时候,才会记录。
我重点要介绍的是自定义日志记录规则,在产品上线之后,我们一般会关闭系统日志,但是可能会自定义一些日志记录下来。由于Think Php支持把日志暂时记录在内存中,在合适的时候把日志写到文件中,所以使用该框架记录日志的时候,建议不使用php的写文件函数而是使用Think php的方法:
1 Think\Log::record('测试日志信息,这是警告级别','WARN'); 2 Think\Log::record('测试日志信息,这是警告级别','WARN',true); 3 Think\Log::save()
需要指出的是第一句和第二句的区别。在上面介绍过,THINK PHP只会记录规定类型的日志,如果你强制记录一条日志,需要在record函数里面使用true强制记录。
测试服务器实测有效:
1 \Think\Log::record(date('d:H:m:s').' sys:'.$os.' ip:'. 2 $ip.' bro:'.$browser.' url:'.$url.' prev:'. 3 $prevUrl.' pars:'.$pars."\n",'',true); 4 \Think\Log::save();