php日志监控和排查

开启PHP错误日志级别

抛出绝大多数错误异常

//临时修改配置
ini_set("display_errors", On);
ini_set('log_errors','on');    //开启日志写入功能
ini_set('error_log','myerror.log'); //日志的存放位置
ini_set("error_reporting", E_ALL);

#获取运行环境
get_cfg_var("env.name");

命令行:PHP错误日志

复制代码
//查找和打开php配置文件
vim /usr/local/php-v/etc/php.ini 或者 /etc/php.ini

//设置配置项
display_errors = On
error_log = "/var/log/php74/error.log"
  
//日志文件权限
chmod a+w /var/log/php74/error.log
复制代码

php-fpm模式:错误日志

配置文件
vim /etc/php-fpm.conf 或者自定义安装目录
vim /etc/php-fpm.d/www.conf

日志目录
error_log = /var/log/php-fpm/error.log

nginx日志

nginx日志是基于nginx.conf域名或全局设置的日志路径

#先找到nginx.conf和vhost目录: whereis nginx

#再找到访问日志和错误日志路径
/data/logs/nginx/host/access.log
/data/logs/nginx/host/error.log

php程序对错误异常捕捉后自定义的日志文件

复制代码
#设置兜底错误异常捕捉器
set_error_handler([$this, 'handleError']);
set_exception_handler([$this, 'handleException']);
register_shutdown_function([$this, 'handleShutdown']); //终极核武器,放在最前面(按顺序执行越靠前优先级越高),可以捕捉到语法错误

function handleShutdown(){
    if (! is_null($error = error_get_last()) && in_array($error['type'], [E_COMPILE_ERROR, E_CORE_ERROR, E_ERROR, E_PARSE])) {
        var_dump($error);
    }
}

//突破PHP运行时限
set_time_limit(0);

//无视请求断开
ignore_user_abort(true);
复制代码

完全不抛异常的情况(经验积累)

1,php客户端连接断开

写入文件失败处理

1,文件所用户和组:以php-fpm进程用户来设置文件和目录的所属

2,修改文件的权限:755等等

3,文件的所属为root的时候,就算修改了777权限一段时间又会莫名其妙还原为原来的权限。只有修改文件所属为非root才能解决

ps -ef|grep php-fpm
chown user:user path[/*]
chmod 777 path[/*]

 

 

 

 

posted @   指令跳动  阅读(268)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示