记一次PHP日志系统构建思路,以及碰到问题
背景: 原先后台简单的日志记录已经无法满足需求了,并且经过不同的人修改,整个日志记录已经混乱不堪,迫切需要重新构建修改。
并且,这里有个一个特殊要求,就是需要对整个业务系统进行预警。
思路:我的第一个想法,直接使用当前最强大的日志系统monolog,但是实际使用中发现,其过于庞大,复杂,没有必要;
所有直接使用了其中精华部分,日志分级别(8个),并且根据不同的级别进行预警(钉钉,邮件,短信,电话)。
实际开发中一些问题的记录:
系统的有定时任务,用root用户运行的,其生成的日志文件,www用户无法记录日志;
解决办法:直接判断是否CLI模式运行,文件权限是否root用户,如果是,那么直接修改文件权限;
if (fileowner($fullFileName) === 0) { //root用户
exec('chown -R www:www '.$fullFileName);
}
后续发展:随着系统运行一段时间之后,越来的功能需要加入,导致目前日志类,越来越庞大;已经渐渐的有些跟不上需求了,需要考虑进一步拆分;

浙公网安备 33010602011771号