4

这就是我告诉 php 要做的事情:

<?php
error_reporting(E_ALL);
ini_set('display_errors', '0');
ini_set('log_errors', 1);
ini_set('error_log', 'errors.log');
ini_set('error_append_string', 'APP');
ini_set('error_prepend_string', 'PRE');
?>

希望我能在一个文件中报告所有错误,消息前有“PRE”,消息后有“APP”。(我的目标是把 PRE 和 APP 变成 /n /r 什么的……)

但我的错误报告日志如下所示:

[2013 年 5 月 14 日 00:16:26] PHP 通知:未定义变量:第 14 行 /home/www/dir/index.php 中不存在变量 [2013 年 5 月 14 日 00:16:28] PHP 通知:未定义变量:第 14 行的 /home/www/dir/index.php 中不存在变量

没有PRE,没有APP...

我如何将它放在那里,以便我的错误报告文件将每个错误都放在一个换行符上,而不是一串对我没有帮助的错误?

编辑: 所以我注意到 ini_set('display_errors', '1'); “APP”和“PRE”字符串显示在页面上,在错误消息中。

这意味着我真的需要找出在哪里可以更改 php 记录错误的格式。例如,这整个时间戳的事情 - 在哪里指定?

编辑: 无法更改 php 记录错误的方式,您必须制作自己的错误处理程序。

回答: 为了真正实现我的目标,我问了一个不同的问题(更准确地说)。 如何更改 PHP 在错误日志文件中写入错误的方式?

4

2 回答 2

5

由于文档对此没有任何说明,因此我已经测试了您的示例。我意识到这error_append/prepend_string仅适用于显示但不记录的错误

我的目标是把 PRE 和 APP 变成 /n /r 什么的……

您应该为此使用正则表达式。应该是可能的,因为每条日志消息都以几乎相同的前缀开头。会准备一个......

于 2013-05-13T22:45:27.483 回答
1

phpinfo();在 ini_sets 之后检查

于 2013-05-13T22:30:17.193 回答