一、 错误处理:
  a) 在写程序的过程当中,遇到错误时,你的反应?可能比较急躁,比较烦
  b) 遇到错误后:一别哭,二别闹,三别上吊,四别尿……
二、 你可能会遇到的错误:
  a) 语法错误
    i. 语法错误是最容易排除的错误,通常在报错行前后看看,就可以解决
  b) 运行时的错误
    i. 运行时的错误,不是特别容易排除,需要仔细检查
  c) 逻辑错误
    i. 逻辑错误,最难以排除!
三、 解决报错问题的方法:
  a) 输出法调试:
    i. 在编写程序的过程当中,我们应当边写边调试,能够有效的避免逻辑错误的出现!
  b) 断点法调试:
    i. 在程序的某个位置使用die或exit语法进行脚本的终端,然后配合输出法进行程序的调试!
  c) 删除法(注释法)调试:
    i. 将多余的代码进行删除或注释,再去判断执行结果是否正确
  d) 最佳解决方式:
    i. 还是输出法,就是我们边写边输出!
四、 Php当中错误级别:
  a) E_NOTICE 级别的错误(好比你的右手擦破点皮儿)
    i. NOTICE级别的错误,最容易排除,而且是级别最低的错误,它不会影响程序执行,只会提示一个内容;
  b) E_WARNING级别的错误(好比你的右手骨折了,但是你还有左手啊!)
    i. WARNING级别的错误,比较容易排除,报错行不再输出,不会影响整个脚本执行;
  c) E_ERROR 级别的错误(相当于脑袋掉了,脑袋掉了之后啥事儿都干不了了!)
    i. FATAL级别的错误,会直接终止整个脚本执行,相对容易排除!
  d) E_ALL 所有的错误和提示内容!
五、 在php当中控制错误级别的两种方法:
  a) 在配置文件当中(php.ini)
    i. 搜索 error_reporting = E_ALL,该选项是用来设置php当中错误显示的方式
    ii. 必须要认识的符号:
      1. &:并且
      2. |:或者
      3. ~:除了
      4. Error_reporting = E_ALL &~ E_NOTICE &~ E_WARNING &~ …
      5. 设置php错误显示所有错误,但是除了NOTICE级别的错误
    iii. 在php.ini当中设置的错误级别显示会作用于整个服务器!
  b) 在当前脚本当中
      i. 使用 error_reporting() 函数
      ii. error_reporting(E_ALL &~ E_NOTICE &~ E_WARNING &~ E_ERROR);
      iii. 在当前脚本的最上方添加上述语句,可以控制当前脚本的错误显示
      iv. 推荐,作用范围只是当前设置错误级别的脚本!
  c) 通过一项设置可以直接让所有的错误不再显示!
      i. Display_errors 在配置文件搜索该选项display_errors = On 会出现这个结果,我们可以将On修改为 Off即可实现错误提示关闭
  d) 在PHP脚本当中可以对配置文件当中的选项进行一些设置:
      i. Ini_get_all();可以获取所有我们能够在php脚本当中设置的配置项
      ii. Ini_get(配置名); 获取指定的配置项信息
      iii. Ini_set(配置名,配置值);在脚本当中设置配置项的信息
六、 错误日志:
  a) 在生活当中的很多地方,都应用到了这种日志记录,例如:航海日志,飞机上的黑匣子,php当中的错误日志文件等等
  b) 错误日志的存储位置:
    i. Wamp -> logs -> php_error.log 这就是php的错误日志文件
  c) 设置错误日志开启:
    i. Php.ini当中搜索log_errors = On,默认开启,如果改为Off说明关闭日志存储错误信息!
  d) 修改错误日志的存储位置
    i. 在php.ini当中搜索 error_log
    ii. error_log ="D:/Wamp/logs/php_error.log",位置可以自己定义
  e) 真正的项目在上线运营之前,需要查看错误日志设置的情况:
    i. 开发环境:允许报错!
    ii. 测试环境:允许报错!
    iii. 上线运营:不能报错!
      1. 要上线运营的项目,错误日志需要进行如下设置
        a) Display_errors = Off 设置报错信息不再脚本中显示
        b) Error_reporting = E_ALL 设置php报错机制为所有级别的错误!
        c) Log_errors = On 开启错误日志记录
        d) Error_log = “设置你要存储错误日志的位置!”
      2. 进行上面的设置之后,可以保证错误不再php脚本当中出现!

【php】错误日志处理的更多相关文章

  1. 【夯实PHP基础】nginx php-fpm 输出php错误日志

    本文地址 原文地址 分享提纲: 1.概述 2.解决办法(解决nginx下php-fpm不记录php错误日志) 1. 概述 nginx是一个web服务器,因此nginx的access日志只有对访问页面的 ...

  2. nginx php-fpm 输出php错误日志

    nginx是一个web服务器,因此nginx的access日志只有对访问页面的记录,不会有php 的 error log信息. nginx把对php的请求发给php-fpm fastcgi进程来处理, ...

  3. SQL Server 错误日志过滤(ERRORLOG)

    一.背景 有一天我发现SQL Server服务器的错误日志中包括非常多关于sa用户的登陆错误信息:“Login failed for user 'sa'. 原因: 评估密码时出错.[客户端: XX.X ...

  4. MySQL错误日志总结

    MySQL错误日志是记录MySQL 运行过程中较为严重的警告和错误信息,以及MySQL每次启动和关闭的详细信息.错误日志的命名通常为hostname.err.其中,hostname表示服务器主机名. ...

  5. MS SQL 监控错误日志的告警信息

    SQL Server的错误消息(Error Message)按照消息的严重级别一共划分25个等级,级别越高,表示严重性也越高.但是如果你统计sys.messages,你会发现,实际上只有16(SQL ...

  6. [AlwaysOn Availability Groups]SQL Server错误日志(AG)

    SQL Server错误日志(AG) SQL Server错误日志会记录影响AG的时间,比如: 1.和Windows故障转移集群交互 2.可用副本的状态 3.可用数据的状态 4.AG endpoint ...

  7. SQL Server自动化运维系列——监控磁盘剩余空间及SQL Server错误日志(Power Shell)

    需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在所有的自检流程中最基础的一个就是磁盘剩余空间检测. ...

  8. C# 记录错误日志

    程序的错误日志如何记录下来? 可以在遇到异常时,Catch异常,然后把异常的信息输出到txt文件中即可 /// <summary> /// 错误日志 /// </summary> ...

  9. nginx error_log 错误日志配置说明

    nginx的error_log类型如下(从左到右:debug最详细 crit最少): [ debug | info | notice | warn | error | crit ] 例如:error_ ...

  10. 查看MS SQL SERVER 错误日志

    查看目的: 错误日志的查看是确保过程已成功完成(例如,备份和恢复操作,批处理命令,或其他脚本和过程).这可以帮助检测任何当前或潜在的问题,包括自动恢复信息(尤其是如果SQL Server实例已停止并重 ...

随机推荐

  1. Python模块一

    logging模块 我们来说一下这个logging模块,这个模块的功能是记录我们软件的各种状态,你们现在和我一起找到红蜘蛛的那个图标,然后右键找一找是不是有个错误日志.其实每个软件都是有错误日志的,开 ...

  2. Maven pom.xml 添加本地jar包依赖以及打包方法

    Maven项目打包时,如果遇到需要添加本地jar包依赖的时候,可以选择两种方法: 1. 安装到本地仓库 第一种方法比较常规,适用于需要添加的jar包也是由maven项目导出,含有pom文件的时候.只需 ...

  3. MQTT抓包分析

    1. 概述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议,该 ...

  4. 使用 Pandas 的 to_excel() 方法来将多个 csv 文件合并到一个 xlsx 的不同 sheets 内

    这几天在用 Python3 研究一个爬虫,最后一个需求是把爬下来的20+个csv文件整合到一个excel表里的不同sheets. 初版的核心代码如下: while year <= 2018: c ...

  5. 公钥体系(PKI)等密码学技术基础

    公钥体系(PKI)等密码学技术基础 公钥体系(Public Key Infrastructure, PKI)的一些概念 对称密码算法, 典型算法:DES, AES 加解密方共用一个密钥 加/解密速度快 ...

  6. HTTP 与 HTTPS 的区别以及 HTTPS 建立连接的过程

    HTTP 与 HTTPS 区别 HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好. 使用 HTTPS 协议需要到 CA(Certifi ...

  7. spring动态添加bean

    不知道大家想过没有,我们使用mybatis的时候只要写接口和配置上一个sql语句就可以了,单从代码的角度来看,这是不合理的. 所以我们通常在service里面注入的mapper它其实是一个代理对象 ​ ...

  8. 优秀DevOps工程师必会的33个面试题

    DevOps面试问题 01 您能告诉我们DevOps和Agile(敏捷)之间的根本区别吗? 答:尽管DevOps与敏捷方法(这是最流行的SDLC[Software Development Life C ...

  9. 免费开源数字货币交易所——基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所

    本项目是基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎.本项目基于SpringCloud微服务开发,可用来搭建和二次开发数字货币 ...

  10. JSP+Servlet+C3P0+Mysql实现的苹果网上商城

    项目简介 项目来源于:https://github.com/gpengDemo/Estore 本系统基于JSP+Servlet+C3P0+Mysql.涉及技术少,易于理解,适合JavaWeb初学者学习 ...