首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php修改报错级别

在PHP中,修改错误报告级别允许开发者控制哪些类型的错误会被报告。这可以通过修改error_reporting指令来实现,该指令可以在PHP脚本中设置,也可以在php.ini配置文件中设置。

基础概念

错误报告级别决定了PHP脚本运行时报告哪些类型的错误。PHP定义了几种不同级别的错误,包括:

  • E_ERROR:致命运行时错误,脚本无法继续执行。
  • E_WARNING:运行时警告,脚本可以继续执行。
  • E_NOTICE:运行时通知,通常是代码中的小问题,脚本可以继续执行。
  • E_CORE_ERROR:PHP启动时的致命错误。
  • E_CORE_WARNING:PHP启动时的警告。
  • E_COMPILE_ERROR:编译时的致命错误。
  • E_COMPILE_WARNING:编译时的警告。
  • E_USER_ERROR:用户自定义的致命错误。
  • E_USER_WARNING:用户自定义的警告。
  • E_USER_NOTICE:用户自定义的通知。

修改错误报告级别

你可以通过以下几种方式修改错误报告级别:

在脚本中设置

代码语言:txt
复制
error_reporting(E_ALL & ~E_NOTICE); // 报告所有错误,除了通知

在php.ini文件中设置

打开php.ini文件,找到error_reporting指令,并根据需要修改它:

代码语言:txt
复制
error_reporting = E_ALL & ~E_NOTICE

优势

  • 控制错误报告:允许开发者只关注重要的错误,减少不必要的警告和通知。
  • 提高性能:减少错误报告可以减少脚本执行时的开销。
  • 更好的用户体验:通过隐藏某些类型的错误,可以提供更干净的用户界面。

应用场景

  • 生产环境:在生产环境中,通常希望只报告致命错误,以避免用户看到不必要的警告和通知。
  • 开发环境:在开发过程中,可能需要报告所有类型的错误,以便于调试。

常见问题及解决方法

问题:为什么修改了错误报告级别后,错误仍然显示?

  • 原因:可能是php.ini文件没有被正确加载,或者error_reporting指令在脚本中被覆盖。
  • 解决方法
    • 确保修改的是正确的php.ini文件。
    • 检查脚本中是否有其他地方设置了error_reporting
    • 重启Web服务器或PHP-FPM服务以应用更改。

问题:如何查看当前的错误报告级别?

  • 解决方法:在PHP脚本中使用error_reporting()函数查看当前的错误报告级别:
代码语言:txt
复制
echo error_reporting();

参考链接

通过以上方法,你可以有效地控制PHP中的错误报告级别,从而优化开发和生产环境中的错误处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mysql设置隔离级别_修改mysql事务隔离级别

Mysql默认的事务隔离级别是可重复读(Repeatable Read),那互联网项目中Mysql也是用默认隔离级别,不做修改么?...OK,三种,分别是 statement:记录的是修改SQL语句 row:记录的是每行实际数据的变更 mixed:statement和row模式的混合 那Mysql在5.0这个版本以前,binlog只支持...(2)将binglog的格式修改为row格式,此时是基于行的复制,自然就不会出现sql执行顺序不一样的问题!奈何这个格式在mysql5.1版本开始才引入。...也就是说,我们该纠结都只有一个问题,究竟隔离级别是用读已经提交呢还是可重复读? 接下来对这两种级别进行对比,讲讲我们为什么选读已提交(Read Commited)作为事务隔离级别!...Oracle的默认隔离级别就是RC,你们改过Oracle的默认隔离级别么? 在RC级别下,主从复制用什么binlog格式? OK,在该隔离级别下,用的binlog为row格式,是基于行的复制!

2.7K10
  • PHP CI(CodeIgniter)log级别设置

    1、Ci的报错级别设置一般在index.php中,可以设置ENVIRONMENT。一般来讲,开发的时候选择development模式,正式发布之后,选择production模式。...The application environment is not set correctly.');  } } 2、CI的错误日志默认存放在application/logs/log-[time].php...中,日志的级别、路径、时间格式等,在application/config/config.php文件中设置,相关代码如下: /* |------------------------------------...You can use PHP date | codes to set your own date formatting | */ $config['log_date_format'] = 'Y-m-d...H:i:s'; 3、在自己写代码需要记录日志时,可以调用全局函数log_message('级别','消息'),级别的参数为(调试 debug, 错误 error, 信息info),内容自己定义即可。

    70920

    线上问题排查 | 动态修改LOGGER日志级别

    本文简要介绍如何使用开源Java调试工具Arthas,实时修改线上服务的LOGGER级别,从而免去打包再部署的繁杂手续,更快的定位线上问题。...效果演示: [在这里插入图片描述] 本文内容重点: Arthas工具简介 本地测试:实时修改LOGGER级别 线上实战:实时打印MyBatis SQL语句 总结 本文阅读大概需要:2分钟 码字不易,欢迎关注我的个人原创技术公众号...使用如下命令,修改名称为ROOT的logger的日志级别至debug级别: logger --name ROOT --level debug [1605107665964-image.png] 可以看到多出了...ROOT --level debug [1605107691234-image.png] [1605107695590-image.png] 使用 ongl 命令 此外,Arthas还支持使用ognl来修改日志级别...但是这种方法对log4j不友好,修改会报错。

    2.3K00

    Spring Boot 2动态修改日志级别

    传统方式定位问题时,往往是如下步骤: •将日志级别设低,例如 DEBUG ;•重启应用;•复现问题,观察日志; 如果能动态修改日志级别(无需重启应用,就能立刻刷新),那绝对 如猫添翼 。...事实上,从 Spring Boot 1.5 开始,Spring Boot Actuator 组件就已提供动态修改日志级别的能力。 TIPS •其实更低版本也只需简单扩展,即可实现动态修改日志级别。...测试 /loggers 端点提供了 查看 以及 修改 日志级别的能力。...界面 本文是使用 curl 手动发送 POST 请求手动修改日志级别的,该方式不适用生产,因为很麻烦,容易出错。...生产环境,建议根据Actuator提供的RESTful API定制界面,或使用 Spring Boot Admin ,可视化修改日志级别,如下图所示: ? 想修改哪个包/类的日志级别,直接点击即可。

    1.3K20

    Spring Boot 2动态修改日志级别

    传统方式定位问题时,往往是如下步骤: •将日志级别设低,例如 DEBUG ;•重启应用;•复现问题,观察日志; 如果能动态修改日志级别(无需重启应用,就能立刻刷新),那绝对 如猫添翼 。...事实上,从 Spring Boot 1.5 开始,Spring Boot Actuator 组件就已提供动态修改日志级别的能力。 TIPS •其实更低版本也只需简单扩展,即可实现动态修改日志级别。...测试 /loggers 端点提供了 查看 以及 修改 日志级别的能力。...界面 本文是使用 curl 手动发送 POST 请求手动修改日志级别的,该方式不适用生产,因为很麻烦,容易出错。...生产环境,建议根据Actuator提供的RESTful API定制界面,或使用 Spring Boot Admin ,可视化修改日志级别,如下图所示: ? 想修改哪个包/类的日志级别,直接点击即可。

    1.4K20

    elastic search 修改日志级别为warn

    案发现场 测试同学压测 接口,导致es疯狂超时 排查 登录es服务器,打开日志,发现全部是超时日志,再往上看发现全是debug级别的日志,而且连每条query语句都打印了出来。...修改为warn级别的 Elasticsearch 会输出很多日志,都放在 ES_HOME/logs 目录下。默认的日志记录等级是 INFO 。...你 可以 修改log4j2.properties 文件然后重启你的节点——但是这样做即繁琐还会导致不必要的宕机时间。...作为替代,你可以通过 cluster-settings API 更新日志记录级别,就像我们前面刚学过的那样。 要实现这个更新,选择你感兴趣的日志器,然后在前面补上 logger. 。...transient" : { "logger.discovery ": "WARN" } }' 设置生效,Elasticsearch 将开始输出 discovery 模块的 WARN级别的日志

    2.9K30

    修改实例级别的熔断为实例+方法级别

    实例级别的熔断带来的困扰 如之前系列(Spring Cloud升级之路 - Hoxton - 4. 使用Resilience4j实现实例级别的隔离与熔断)所述,我们实现了实例级别的熔断。...首先如果发布了新接口,但是不小心回滚了,调用新接口就会报错,从而导致整个实例都不能访问。还有就是某些实例某个接口出现了问题,但是其他接口是好的,熔断掉整个实例有点浪费。...于是乎,我们将实例级别的熔断改成 实例 + 方法级别。...对于 OpenFeign 修改 首先,我们只针对断路器进行修改,线程隔离还是实例级别的,如果也抽象为实例+方法级别的,线程数与线程池的数量就太多了。...这样做是可以的,的确实现了实例 + 方法级别的熔断。

    65220
    领券