我们所做的东西,无论在开发环境还是在生产环境都可能会出现一些问题。

开发环境下,我们会要求错误尽可能详细的呈现出来,错误提示信息越详细越好,越详细越能帮助开发人员确定问题所在并从根本上解决他们。

生产环境下,为了良好的用户体验以及网站安全,我们会尽可能少的出现错误提示。

那具体到php语言中,我们又要怎么做呢?

首先了解一下php中的两个配置项:

(1)display_error

display_errors ,错误回显,一般常用与开发环境。如果在生产环境中开启选项,错误回显会暴露出非常多的敏感信息,为攻击者下一步攻击提供便利。推荐关闭此选项。

display_errors = On

开启状态下,若出现错误,则报错,出现错误提示

dispaly_errors = Off

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

对于PHP开发人员来说,一旦某个产品投入使用,那么第一件事就是应该将display_errors选项关闭,以免因为这些错误所透露的路径、数据库连接、数据表等信息而遭到黑客攻击。

既然生产环境中不能出现错误提示信息,而当网站出现问题,我们有需要查看具体的错误信息时有需要怎么做呢?没错,这就用到了下面的错误日志记录。

(2)log_error

log_error,错误日志,一般用于生产环境中。开发人员可以分析错误日志内容,进而发现并解决问题。

log_error=on 开启错误日志

log_error=off  关闭错误日志

日志默认是记录到WEB服务器的日志文件里,比如Apache的error.log文件。 当然也可以记录错误日志到指定的文件中。

     # vim /etc/php.inidisplay_errors = Off log_errors = On error_log = /var/log/php-error.log 

在生产环境中,一旦开启了错误日志记录功能,个人强烈建议设置错误日志目录。

转载于:https://www.cnblogs.com/linux-centos/p/9238136.html

PHP错误日志记录:display_errors与log_errors的区别相关推荐

  1. App错误日志记录到本地

    1.使用背景:客户使用App过程中程序出错,如无法复现Bug,会很难受.所以,将错误记录至本地并发送后台,会方便日后优化及维护. 2.bug捕捉的工具类 import java.io.File; im ...

  2. .Net Core中间件和过滤器实现错误日志记录

    1.中间件的概念 ASP.NET Core的处理流程是一个管道,中间件是组装到应用程序管道中用来处理请求和响应的组件.每个中间件可以: 选择是否将请求传递给管道中的下一个组件. 可以在调用管道中的下一 ...

  3. 一个错误日志记录工具类

    package com.moxiu.downloader.util;/*** 当程序发生Uncaught异常的时候,有该类来接管程序,并记录错误日志* Created by ZGP on 2017/7 ...

  4. Handling and Logging Errors处理错误日志记录

    Handling and Logging Errors Introduction 现实会出很多错误,例如数据库连接断开,要发送合适的消息给回Client,并在Server记录日志. Handing R ...

  5. asp.net Web项目中使用Log4Net进行错误日志记录

    使用log4net可以很方便地为应用添加日志功能.应用Log4net,开发者可以很精确地控制日志信息的输出,减少了多余信息,提高了日志记录性能.同时,通过外部配置文件,用户可以不用重新编译程序就能改变 ...

  6. python报错输出到日志_Python下的异常处理及错误日志记录

    Python使用被称为异常的特殊对象来表达执行期间发现的错误.当这些异常没有被捕获并处理时,程序将停止,并向控制台打印错误信息.这个错误信息通常是一个traceback,包含了异常的类型,以及诱发这个 ...

  7. php fpm 日志记录,使用Nginx在PHP-FPM 7上启用错误日志记录?

    comment above by the_nuts帮我解决了这个问题.目录和文件不存在. 为了诊断,我补充说: print("\n\n log_errors: ".ini_get( ...

  8. PHP错误日志,解决不显示不记录日志文件等疑难杂症

    2019独角兽企业重金招聘Python工程师标准>>> PHP不显示错误日志,适用于 Ningx + php-fpm +PHP 以及 Apache +mod/cgi+ PHP 方式加 ...

  9. Elmah 日志记录组件

    http://www.cnblogs.com/jys509/p/4571298.html 简介 ELMAH(Error Logging Modules and Handlers)错误日志记录模块和处理 ...

最新文章

  1. 管理输入光标的 WIN32 API 函数
  2. Python3可变字符串代码实现
  3. java权限框架_Java高级工程师必备技术栈-由浅入深掌握Shiro权限框架
  4. 获奖者:舒继武,男,清华大学计算机系教授、博士生导师,教育部长江学者特聘教授,国家杰出青年基金获得者,《大数据》杂志编委。...
  5. 华为员工“削尖脑袋”想进荣耀!网友也可以放心了,荣耀产品售后不受影响...
  6. CMMI认证过程中实施步骤详解
  7. textarea输入框光标定位问题
  8. C语言编程入门(绪论)
  9. Java基础-面向对象-封装继承多态
  10. 移动平均线rolling()与加权移动平均线ewm()
  11. 【ESP32之旅】ESP32C3 Arduino库使用方法
  12. Peekaboo—站立式会议+alpha冲刺:Day1冲刺随笔
  13. 自然语言处理--模仿莎士比亚风格自动生成诗歌
  14. 【MATLAB】MATLAB 仿真数字基带传输系统 — 双极性基带信号(余弦滚降成形脉冲)的眼图
  15. html基础-style样式
  16. 赵文婧:深入了解 Azure 云平台容器技术服务
  17. php 银行支付通道_使用php实现快钱支付功能(涉及到接口)
  18. hashmap的put方法详细解释
  19. T-SQL 基础学习 01
  20. POJ-2001-Shortest Prefixes

热门文章

  1. Java开发入门与实战!java图形用户界面布局
  2. 拆箱装箱有什么作用JAVA_基础--最简单明了的拆箱装箱解释,带实例
  3. python模块datetime_Python模块学习 datetime介绍
  4. java log4j logback jcl_进阶之路:Java 日志框架全画传(下)
  5. oracle往游标中存数据,Oracle数据库:ORACLE11G在存储过程里面遍历游标
  6. mysql拼接数组_Mysql合并结果接横向拼接字段的实现步骤
  7. CSS自定义动画@keyframes的使用
  8. java栈的底层实现_JVM 底层原理总结
  9. 生成jacoco报告_测开技能之如何利用ant jacoco 合并覆盖率报告
  10. windows10 1903中vmware无法运行解决方法和15.5安装