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 与包含的文件位于同一目录中吗? 的相关文章

  • 如何使用 PHP 正确添加跨站请求伪造 (CSRF) 令牌

    我正在尝试为我网站上的表单添加一些安全性 其中一个表单使用 AJAX 另一个表单是简单的 联系我们 表单 我正在尝试添加 CSRF 令牌 我遇到的问题是令牌有时只显示在 HTML 值 中 其余时间 该值为空 这是我在 AJAX 表单上使用的
  • PHP 如何判断用户是否按下了 Enter 键或 Submit 按钮?

    我遇到的问题是我在一个表单中有多个提交输入 每个提交输入都有不同的值 我更愿意将它们保留为提交 Whenever the user presses Enter it is as though the topmost submit input
  • 检查php中位字段是否打开的正确方法是什么

    检查位字段是否打开的正确方法是什么 在 php 中 我想检查来自 db mysql 的位字段是否打开 这是正确的方法吗 if bit 1 还有其他方法吗 我看到有人使用代码ord http jameslow com 2008 08 12 m
  • 简单的 PHP 条件帮助: if($Var1 = in list($List) and $Cond2) - 这可能吗?

    这是一个可能的功能吗 我需要检查一个变量是否存在于我需要检查的变量列表中 并且 cond2 是否为 true 例如 if row name 1 2 3 Cond2 doThis 它对我不起作用 我在复制粘贴中更改的只是我的列表和变量名称 i
  • 删除PHP字符串中所有不匹配的字符?

    我有一个文本 我想从中删除所有不属于以下字符的字符 所需字符 0123456789 abcdefghijklmnopqrstuvwxyz n 最后一个是我确实想保留的 n 换行符 要匹配除列出的字符之外的所有字符 请使用反转字符集 http
  • 如何使用 phpunit 运行单个测试方法?

    我正在努力运行一个名为testSaveAndDrop在文件中escalation EscalationGroupTest php with phpunit 我尝试了以下组合 phpunit EscalationGroupTest escal
  •  
    标记内删除

    我制作了简单的 BBCode 脚本 一切正常 但后来我使用了一个 javascript 库来美化我的代码 pre pre 现在我面临的唯一问题是 br 每行代码后面的标签 pre pre tags 所以问题是我怎样才能删除 br 标记哪些在
  • PHP 会话不适用于游戏

    我正在尝试模仿一款名为 SKUNK 用骰子玩 的游戏来完成一项作业 我无法让会话正常工作 这是我第一次使用 PHP 我还被告知无需会议即可完成 这是我的代码
  • 如何在响应ajax codeigniter后停止执行其他控制器

    我想知道如何在响应输出 json 数据后停止执行函数和涉及的其他控制器 就我这里的情况而言 我只是打电话test 函数于dashboard控制器 In dashboard构造函数将执行MY Login library In MY Login
  • PHP严格标准:声明应该兼容

    我有以下类层次结构 class O Base class O extends O Base abstract class A Abstract public function save O Base obj class A extends
  • 如何使用 php 下载/打印页面的特定部分

    我有一个 HTML 页面如下 Lorem Ipsum is simply dummy text of the printing and typesetting industry Lorem Ipsum has been the indust
  • 扩展蓝图类?

    我想覆盖timestamps 函数中发现Blueprint班级 我怎样才能做到这一点 e g public function up Schema create users function Blueprint table table gt
  • 是否可以使用 PHP 重定向发送 POST 数据?

    更新 这不是重复的如何使用 PHP 发送 POST 请求 https stackoverflow com questions 5647461 how do i send a post request with php 那里的解决方案对我不起
  • 交换关联数组中的两个项目

    Example arr array apple gt sweet grapefruit gt bitter pear gt tasty banana gt yellow 我想调换一下柚子和梨的位置 这样数组就变成了 arr array ap
  • 随机组合 MySQL 数据库中的两个单词

    我有一个包含名词和形容词的数据库 例如 id type word 1 noun apple 2 noun ball 3 adj clammy 4 noun keyboard 5 adj bloody ect 我想创建一个查询 它将抓取 10
  • 在 apache docker 容器中运行虚拟主机

    我在同一个 apache 容器中有两个 php 应用程序 我试图在端口上运行其中一个应用程序 因为它需要通过根域而不是子文件夹进行访问 我想在端口 8060 上运行应用程序 我尝试使用 apache 虚拟主机执行此操作 但它不会加载页面 h
  • 使用 Ajax.Request 将 JSON 从浏览器传递到 PHP 的最佳方法

    您好 我有一个 JSON 对象 它是一个二维数组 我需要使用 Ajax Request 将其传递给 PHP 我知道的唯一方法 现在我使用js函数手动序列化我的数组 并获取以下格式的数据 s 1 d 3 4等 我的问题是 有没有办法更直接 有
  • Doctrine EntityManager 清除嵌套实体中的方法

    我想用学说批量插入处理 http doctrine orm readthedocs org en latest reference batch processing html为了优化大量实体的插入 问题出在 Clear 方法上 它表示此方法
  • 简单的 PHP 表单:电子邮件附件(代码 Golf)

    想象一下 一个用户想要在其网站上放置一个表单 该表单将允许网站访问者上传一个文件和一条简单的消息 该消息将立即通过电子邮件发送 即 该文件未存储在服务器上 或者如果该文件存储在服务器上 仅暂时 作为文件附件 并在邮件正文中添加注释 查看更多
  • 对具有混合类型值的数组进行数字排序

    我有一个像这样的混合数组 fruits array lemon Lemon 20 banana apple 121 40 50 然后申请sort 其功能如下 sort fruits SORT NUMERIC foreach fruits a

随机推荐

  • 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