错误日志-开发的好助手

无论使用哪一种软件,使用何种语言进行开发,日志都是不可或缺的一部分。在php开发中或真实的生产环境中,错误日志的使用是一个优秀软件工程师的必备标准。在php开发中,我们就经常就遇到的各种问题需要查看php、apache、mysql、php框架及其它关联产品的错误日志,进程错误排查和BUG修复,特别是已经上线的产品,需要定期查看运行日志,对性能和功能BUG进行检查、优化、修复。这里我们记录了php开发中用到的一些关于错误日志查看使用排错的实例。

1、apache的日志

如果不知道apache日志在哪,我们可以通过 httpd -V 命令查看apache的所有信息,如下图所示:

我们可以根据查询到的路径去打开错误日志看看报错的样式

可以看到错误日志记录了不同程度的错误提示,有error和notice,有的是php项目运行时遇到的致命错误,也有些是apache配置上的问题。就像最后的报错就是因为我配置的虚拟主机指向了一个空目录,没有找到匹配的index.php和其它合适的文件。

2、php错误排查

如果不知道php错误日志具体路径可以查看php-fpm.conf配置查看,php-fpm.conf通常路径为/etc/php-fpm.conf,如果不知道可以通过命令查找 find / -name php-fpm.conf,然后查看error_log配置路径

[root@izuf68gu45c1pq7x6px3m6z etc]# find / -name php-fpm.conf
/etc/php-fpm.conf
[root@izuf68gu45c1pq7x6px3m6z etc]# cat /etc/php-fpm.conf |grep error
error_log = /var/log/php-fpm/error.log
; Possible Values: alert, error, warning, notice, debug

在错误日志的同级目录下通常还会有对应某天的分解日志,便于查看某个时间段的错误报告。提醒一下,在正式生产环境中,我们要关闭display_errors,否则报错什么的都显示出来特别容易造成重要信息泄露,被黑客攻击。

dispaly_errors = Off
关闭状态下,若出现错误,则提示:服务器错误。但是不会出现错误提示

然后打开log_errors功能,还要保证我们设置的写入日志的文件有相应的权限。否则还是会显示错误内容。

3、mysql报错

mysql的日志可以通过命令查找,也可以通过进程查看,如:

[root@izuf68gu45c1pq7x6px3m6z log]# ps -aux|grep mysqld
mysql      863  0.0  0.0 113252  1592 ?        Ss   Feb02   0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql     1320  0.0  4.7 1442628 186084 ?      Sl   Feb02  29:45 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
root     17239  0.0  0.0 112648   964 pts/1    S+   15:05   0:00 grep --color=auto mysqld
[root@izuf68gu45c1pq7x6px3m6z log]# find / -name "mysqld.log"
/var/log/mysqld.log

然后根据查到的log路径,我们打开日志进行排错 cat /var/log/mysqld.log

这种错误警告基本不影响mysql使用,但是过多的日志写入会影响我们查看真正的报错,所以,尽量还是解决较好,可以参考博客:http://blog.csdn.net/lxpbs8851/article/details/7892256

4、实践项目thinkphp5错误排查

今天进行网站更换服务器时,在新的服务器上遇到了错误,因为报错被关闭了,只能通过查看日志,tp5日志默认路径是在runtime/log中,根据对应的时间查看。报错如下:

根据错误提示是因为open函数没有打开指定文件的权限,这是linux服务器中最容易出现的问题,通常项目的服务器更换,或多或少都会有忽略的权限问题,我们根据提示的路径把目录的权限赋予之后错误就解决了,当然还会有什么问题,我们就需要定期查看日志进行排查,日志中还会记录性能上的一些数据,更便于我们对于功能的优化了。

所以,养成查看日志的习惯,将会让你的开发工作更好的进行,让一个产品提升到更高的质量。

你们的支持是我前进的动力,感谢阅读!

 

发表评论