概要:熟悉apache, php环境 日志的配置 以及 代码中日志相关的方法
一.apache 配置
LogLevel error // 测试中发现调至error 级别 error_report(E_ALL) 代码出现问题,能写入到日志里,一旦再调高一级,如crit, 则不会写入到日志里。
1. 全局配置日志 LogLevel error // 测试中发现调至error 级别 error_report(E_ALL) 代码出现问题,能写入到日志里,一旦再调高一级,如crit, 则不会写入到日志里。 ErrorLog "|bin/rotatelogs.exe -l D:/workspace_log/apache_error-%Y-%m-%d.log 2M" CustomLog ""
2. 虚拟主机配置单独配置日志 <VirtualHost *:80> DocumentRoot "D:\workspace_php\www.test.com" ServerName www.test.com ErrorLog "D:/workspace_log/test_error.log" CustomLog "D:/workspace_log/test_custom.log" common // 这里的common 代表格式名称 : 参考配置文件 LogFormat "%h nihao1 %l nihao2 %u nihao3 %t nihao4 \"%r\" %>s %b" common ServerAlias <Directory "D:\workspace_php\www.test.com"> Options FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted </Directory> </VirtualHost>
二.PHP.ini
; 错误日志
log_errors = On
; 显示错误
;大脸猫脸大测试发现:如果设为off 一旦遇到error 级别的错误,页面就会报500错误
display_errors = Off; 日志路径
error_log = "/usr/local/lnmp/php/var/log/error_log"
; 错误等级
;大脸猫脸大测试发现:显示或者记录相关的记录,不仅仅是显示。
error_reporting = E_ALL&~E_NOTICE
三.php 方法:
3.1. syslog
syslog (LOG_EMERG, " LOG_EMERG"); // 若是windows系统,会发送到windows日志--应用程序里 syslog (LOG_ALERT, "LOG_ALERT"); syslog (LOG_CRIT, "LOG_CRIT"); syslog (LOG_ERR, "LOG_ERR"); syslog (LOG_WARNING, "LOG_WARNING"); syslog (LOG_NOTICE, "LOG_NOTICE"); syslog (LOG_INFO, "LOG_INFO");
3.2 error_log():发送错误信息到某个地方
error_log("nihao");— 默认php日志
3.3 trigger_error 手动触发用户级别的错误,提醒或警告
trigger_error(" hello NOTICE ", E_USER_NOTICE); trigger_error(" hello WARNING ", E_USER_WARNING); trigger_error(' hello E_USER_ERROR ', E_USER_ERROR);
3.4
ini_set('display_errors', 1); error_reporting(E_NOTICE);
error_reporting level constants and bit values value constant 1 E_ERROR 2 E_WARNING 4 E_PARSE 8 E_NOTICE 16 E_CORE_ERROR 32 E_CORE_WARNING 64 E_COMPILE_ERROR 128 E_COMPILE_WARNING 256 E_USER_ERROR 512 E_USER_WARNING 1024 E_USER_NOTICE 6143 E_ALL 2048 E_STRICT 4096 E_RECOVERABLE_ERROR 8192 E_DEPRECATED 16384 E_USER_DEPRECATED