系统总会留下各种其活动的线索。就像任何犯罪现场会留下线索一样,这应该是客观存在的规律。所以,我要做的就是像侦探一样,分析各种情况,找到那个犯罪的家伙。
中医里面有望闻问切,我们也有几板斧来诊断我们的web程序是否健康。
*根据问题的现象初步判断是哪个阶段的问题
无非就是用户请求->网络->web服务器->应用程序->数据库这样的几个阶段。
每个阶段出现问题的表现都会有其特点。比如在网络,服务器,应用程序都没有明显报错(异常日志)的情况下,发现有数据接口(控制器action)的问题,首先应该想到的是数据库是不是表没了?数据库挂了?等等。
一般出现的问题:
空页面(浏览器长时间没反应)
页面部分加载
页面无数据
应用程序错误页面
非预期的行为
*定位到阶段之后,再根据具体处理流程细分阶段
每个阶段需要分析的日志:
服务器:Apache日志,PHP日志
应用程序框架日志:path/to/magento/var/report
程序中开发者添加的日志:
Mage::log path/to/magento/var/system.log
Mage::logException path/to/magento/var/exception.log
数据库日志
参考文章:
https://www.yireo.com/tutorials/magento/magento-administration/666-analysing-logfiles-with-magento
https://www.sonassi.com/knowledge-base/magento-debug-process/