这就是我告诉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注意:未定义变量:nonexistentvariable in 第14行/home/www/dir/index.php
没有PRE,没有APP ......
我如何在那里获取它,以便我的错误报告文件将在换行符上出现每个错误,而不是对我没有帮助的一连串错误?
修改 所以我注意到了ini_set('display_errors','1'); “APP”和“PRE”字符串显示在页面上的错误消息中。
这意味着我真的需要找出哪里可以更改php记录错误的格式。例如,这个整个时间戳的东西 - 指定的位置在哪里?
修改 不可能改变php记录错误的方式,你必须自己制作错误处理程序。
解答: 为了真正实现我的目标,我提出了一个不同的问题(更准确地说)。 How to change the way PHP writes errors in the error log file?
答案 0 :(得分:4)
由于文档没有说明,我已经测试了你的例子。我意识到error_append/prepend_string
仅适用于显示但未记录的错误
我的目标是将PRE和APP设为/ n / r或其他......
你应该使用正则表达式。应该是可能的,因为每条日志消息都以几乎相同的前缀开头。准备一个....
答案 1 :(得分:2)
在ini_sets
之后检查phpinfo();