error_log 与包含的文件位于同一目录中吗?

2024-01-03

我研究了不同的方法和指令,包括:

  • 自动前置文件
  • .user.ini 文件
  • getcwd()
  • 调试回溯()

我似乎找不到一种方法来更改 error_log 的路径以登录与包含/需要的文件相同的路径。

例如,假设 index.php 有以下行:

include('subdir/file.php');

If subdir/file.php有语法错误,强制 php 创建subdir/error_log,而不是在相同路径中创建 error_log 的默认行为index.php、 auto_prepend_file 也受到同样的限制,因为它在调用的第一个脚本之前添加指定的文件,而不是包含的每个文件。

我环顾四周,似乎找不到合法的方法来做到这一点。我了解这样做对性能开销的影响,并计划仅将其用于开发目的。我相信这可以帮助隔离错误,而不是使用堆栈跟踪,例如debug_backtrace(),因为我可以使用终端脚本来显示上次修改的最后一个错误日志,并且比阅读大量错误日志更快地找到有问题的文件。

显然,我的目标最终是根本不让这些文件出现,因为调试已经存在的站点并且必须查看 10GB 错误日志或tail/multitail它可能有点麻烦。我正在尝试设计这种方法,以便可以通过路径隔离错误。有什么建议么?


根据上面 hakre 的建议,我创建了这个脚本,将其包含在任何 php 脚本的顶部:

(如果您想分叉/下载它,这里还有我对此文件的要点:在 github 上查看 https://gist.github.com/uabassguy/6506245 )

<?
function custom_error_debug($errno, $errstr, $errfile, $errline, $errvars) {
  $message = "";
  $message .= "[ " . date('Y-m-d h-i-s') . " ] Error: [$errno] $errstr on line $errline of $errfile ";

  //Dump all info to browser!
  //WARNING: Leave this commented except for extreme cases where you need to see all variables in use!
  //Using this will cause excessive processing time, and RAM. Use only as needed!
  /*if (!empty($errvars)) {
     echo $message . PHP_EOL . "Variables in use: <pre>";print_r($errvars); echo "</pre>";
     //WARNING: not ending execution here may cause the browser to overload on larger frameworks, comment out at your own risk!
     die();
  }*/

  //get the directory of the offending file, put a log in that path, and separate them by end of line, append to file
  file_put_contents ( dirname($errfile) . "/php_errors.log", $message . PHP_EOL, FILE_APPEND );

  //Dump all variables to file as well, (MAY CAUSE LARGE FILES, read above)
  //file_put_contents ( dirname($errfile) . "/php_errors.log", $errvars . PHP_EOL, FILE_APPEND );

  //Optionally end script execution
  //die();
}
set_error_handler('custom_error_debug');
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

error_log 与包含的文件位于同一目录中吗? 的相关文章

  • 如何更改codeception phpbrowser/mink超时

    我正在尝试使用代码接收创建测试 以检查页面在高负载的情况下是否正常工作 不幸的是 如果页面负载非常高并且测试开始 我会收到这样的错误 Codeception Exception ModuleConfig Codeception Util M
  • 如何在 CakePHP 中“验证”人名?

    我有一个 PHP 脚本 应该检查 有效 的人名 但最近破解了带有空格的名称 因此我们向验证器添加了空格 除了这样做之外 有没有办法向 CakePHP 的验证器添加黑名单以阻止所有 无效 字符 而不是允许 有效 字符 注意 我 通常 知道如何
  • 在laravel中组合两个不同的无关系数据库表查询进行分页

    我的数据库中有两个不相关的表 我需要将它们合并 以便我可以将其放在我的搜索视图中 但我不知道是否可能 这是我的代码 这news and season表不相关 但它们具有相似的列 我试图将其放入一个对象中以便于分页 是否可以 search r
  • 解析错误:语法错误,意外的 T_RETURN [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 遇到这个问
  • 收到警告“标头不能包含多个标头,检测到新行”

    我正在用 oops 进行编码 以便用 PHP 上传图像 但是提交图片后却出现警告 标题不能包含多个标题 检测到新行 下面是我的函数 它给出了错误 public function ft redirect query if REQUEST UR
  • Laravel - 急切加载 Eloquent 模型的方法(而不是关系)

    就像我们可以急切加载 Eloquent 模型的关系一样 有没有办法急切加载不是 Eloquent 模型的关系方法的方法 例如 我有一个 Eloquent 模型GradeReport它有以下方法 public function totalSc
  • Facebook iFrame 应用程序 - 摆脱垂直滚动条?

    我已经转换了一个 Facebook 应用程序 http apps facebook com video preferans 从 FBML 到 iFrame 使用 PHP SDK 现在显示的垂直滚动条与我之前显示的内容数量相同 一个徽标 一个
  • Cakedc.users => 总是重定向到主页

    我在新的 Cakephp 安装上使用插件 CakeDC Users 我有两个控制器 PagesController php CardsController php Pages 有 1 个操作 Beta 它是主页 Cards 有两个操作 索引
  • PHP DOM - 剥离 span 标签,保留其内容

    我希望采用如下标记 span class test Some text that is strong bolded strong and contains a a href link a span 并在 PHP 中找到剥离跨度的最佳方法 剩
  • Composer 无法获取 github

    今天 我尝试通过运行来安装 Laravelcomposer create project laravel laravel 5 1 myproject prefer dist我收到此错误 Could not fetch https api g
  • json_encode 返回 NULL?

    由于某种原因 项目 描述 返回NULL使用以下代码 这是我的数据库的架构 CREATE TABLE staff id int 11 NOT NULL AUTO INCREMENT name longtext COLL
  • php oracle客户端oci8安装出现什么问题

    我尝试了安装 PHP Oracle 客户端的所有过程 1 我安装了客户端版本8和32位 2 我在php ini中取消了oci的注释 3 重新启动Wamp 4 不确定是否真的安装 但我在 php ini 中得到了引用 5 但仍然无法连接 泰汉
  • 当我使用 session_start() 时,Xampp 7.0.1 Apache 崩溃

    当我在 PHP 中使用 session start 启动会话时 我的 Apache 服务器停止工作 我正在使用 Windows 版 Xampp 7 0 1 我的配置文件如下所示 即使我把它放在文件的第一行 它也不起作用 有人知道如何解决这个
  • ACL授权失败后ZF3重定向

    我有一个带有 ACL 的新 ZF3 应用程序 现在 我需要在未经授权的访问的情况下重定向到错误页面 例如 403 我认为最好的方法是触发一个事件 然后捕获它 但我失败了 全部都在我的用户模块中Module php 摘录 namespace
  • php如何生成动态list()?

    根据我的理解 这就是 list 的工作原理 list A1 A2 A3 array B1 B2 B3 所以在帮助下list 我们可以相应地从数组中分配值 这是我的问题 如何生成动态list 1 基于数据库返回结果 我不确定有多少 但我将其全
  • PHP switch case 在 case 中存在多个值

    我有一个变量保存值 每周 每月 季度 和 年度 还有另一个变量保存值从 1 到 10 switch var2 case 1 var3 Weekly break case 2 var3 Weekly break case 3 var3 Mon
  • 在 PHP 中接受带有小数点和千位分隔符的国际数字

    对于用户可以输入能量值来计算相应费用的在线计算器 我需要 PHP 脚本来接受各种用户输入 200 万又四分之一焦耳 的值可以输入为 2000000 25 默认表示法 2 000 000 25 带千位分隔符 2000000 25 逗号作为小数
  • 使用 file_get_content 发布数据

    我已经做了一些关于如何使用的研究file get content与帖子 我也读过this one https stackoverflow com questions 2445276 how to post data in php using
  • 使用 MYSQL 将 h:mm pm/am 时间格式插入数据库

    我正在尝试将以 h mm am pm 格式写入的时间插入到存储为标准 DATETIME 格式 hh mm ss 的数据库中 但我不知道如何将发布的时间转换为标准格式所以数据库会接受它 这是我到目前为止一直在尝试的 title POST in
  • 禁用 WooCommerce 手动/编辑订单的电子邮件通知

    需要 WooCommerce 专业知识 我需要禁用手动创建的订单的电子邮件通知 我必须使用处理状态 由于处理订单状态的自定义挂钩 我无法创建自定义状态 理想情况下 手动订单页面中可以勾选一个复选框 勾选后 它将禁止在每种状态下向客户发送电子

随机推荐

  • Docker compose spring boot redis 连接问题

    我正在运行一个简单的休息应用程序redis在 docker 容器 docker compose 中运行 我相信 redis必须可以使用 Spring Boot 访问http redis 6379 但是 它会抛出错误 018 07 22 21
  • 哪个 Web 应用程序框架与 Neo4J 高度集成?

    我今天一直在研究 Neo4j 我发现它令人兴奋 不知道是否有与Neo4J高度集成的Web应用框架 基本上我想开始尝试 Neo4J 我想也许有明显的 Web 框架选择 如果有的话 我也想尝试一下 你知道任何 编辑 我全部收回 Neo4j 网站
  • Outlook 中的 XML 功能区 - 使其显示在特定窗口上

    我第一次尝试使用 XML 在 Outlook 中创建功能区 但无法具体找到如何告诉我的加载项我只希望功能区显示在资源管理器窗口上 Advice Thanks 我的 Ribbon1 XML 文件
  • 从 javascript 关闭 Firefox 选项卡

    我想从 JavaScript 关闭 Firefox 选项卡 请不要误解我 我不是想关闭弹出窗口 而是关闭选项卡 我知道 JavaScript 无法关闭它尚未打开的窗口 因此我尝试了下面的代码 但它适用于所有浏览器 但不适用于 Firefox
  • 如何从字符串中删除多个违规字符? [复制]

    这个问题在这里已经有答案了 这是我的工作代码 string Input string Output Input data Output Input Replace 在这里 我只是从字符串中删除括号 如果存在 现在 如何扩展 等违规字符列表以
  • %~1 在这个批处理文件中做了什么?

    我找到了这段代码 但有些部分我不明白 这是我的代码 主要 bat echo off set CallCount 0 set Mood set P Mood Your mood is call Receive bat Mood rem Ran
  • 求叶子的总和

    我应该写这样的代码 具有任意数量子节点的多态树类型可以表示如下 请注意 叶子存储一个列表 内部节点存储 ListTree 列表 data ListTree a ListLEAF a ListNODE ListTree a deriving
  • java.io.IOException:无法运行程序“:CreateProcess 错误=193,%1 不是有效的 Win32 应用程序

    当尝试在 Eclipse 中从 java 运行 shell 脚本时 出现以下错误 我刚刚在本地创建了一个文本文件 想看看它是否会运行 new ProcessBuilder C Users myDir Desktop ss1 sh start
  • 将 2 个参数传递给 Laravel 路由 - 资源

    我正在尝试使用资源构建我的路线 以便我可以将两个参数传递到我的资源中 我将向您提供一些 URL 的示例 domain com dashboard domain com projects domain com project 100 doma
  • Sequelize 模型单元测试

    我有一个User续集模型具有beforeCreate使用加密密码的钩子bcrypyt Bcrypyt模型使用以下方法将其作为依赖项加载require陈述 现在 我正在为我的模型编写测试 我想编写一个测试来确保bcrypt在创建时对密码进行哈
  • 如何使整个页面变暗? ( html )

    当我使用其他 div 来执行此操作时 它不会影响其他 dom 类 因此当我希望整个页面变暗时 我必须修改每个 dom 类 有没有办法用灰色透明平面重叠整个文档 有一个codepen http codepen io srikarg full
  • 上传到 Firebase 托管无法正常工作

    我刚刚使用 AngularJS 和 Firebase 作为实时数据库构建了我的第一个 Web 应用程序 当我在本地主机上运行它时 我想要它做的一切对我来说都很有效 但是 当我将其加载到 Firebase Hosting 并打开它时 文件尚未
  • 当数组中的 json 对象数量未知时,如何从 mysql 文本列中提取 json 数组作为表?

    有没有办法从包含具有不同数量的 json 对象的 json 数组的文本列中提取数据到表中 例如 如果我 CREATE TABLE tableWithJsonStr location TEXT jsonStr TEXT INSERT INTO
  • 尝试将实体映射到 DTO 对象时 ModelMapper 返回 NULL

    这是我尝试映射的对象的类 package com agent module entities import java util Set import javax persistence Entity import javax persist
  • 在 C# 应用程序中嵌入 Excel 的最佳方法是什么 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想将 MS Excel 嵌入到我的 wpf C 应用程序中的选项卡式视图中 以便用户可以利用真正的 MS Excel 不是克隆 轻松
  • 创建多页 PDF

    我需要实现创建包含多页文本的 pdf 的功能 class PDFCreator func prepareData gt Data 1 let pdfMetaData kCGPDFContextCreator PDF Creator kCGP
  • python 脚本完成后保持 Selenium 浏览器打开

    我正在开发一个硒项目 但每次脚本结束时 窗口都会自动关闭 不过 在脚本关闭后 我想保持窗口打开 我用谷歌搜索了这个 stackoverflow 说使用以下代码来保持它打开 chrome options webdriver ChromeOpt
  • Groovy 从 URL 下载图像

    我想知道从该 RUL 下载图像的正确方法是什么 http www hidemyass com proxy list img port 7018246 1 http www hidemyass com proxy list img port
  • 浏览速度取决于浏览器吗?

    浏览速度取决于浏览器 如IE firefox 吗 如果取决于浏览器 哪种浏览器最好并且运行速度最快 如果我们清除浏览器的缓存 会不会降低浏览速度 thanks 是的 这取决于浏览器 不仅是哪个浏览器 还有它的配置 有很多东西在不同的浏览器中
  • error_log 与包含的文件位于同一目录中吗?

    我研究了不同的方法和指令 包括 自动前置文件 user ini 文件 getcwd 调试回溯 我似乎找不到一种方法来更改 error log 的路径以登录与包含 需要的文件相同的路径 例如 假设 index php 有以下行 include