PHP错误日志 - php.ini php错误的唯一文件

时间:2017-02-17 22:10:42

标签: php

我目前正在开发一个项目并且伸出援助之手,我已经更改了我的php.ini文件,将错误记录到PHP文件返回错误的目录中的“php_errors.log”。 / p>

我想知道,在网上搜索之后(也许我说的不正确),有没有办法在php.ini文件中为不同的错误设置一个唯一的文件名。

例如,如果让我们说account.php发生错误,有没有办法通过ini文件记录错误文件“account_php_errors.log”?

4 个答案:

答案 0 :(得分:2)

从ini文件中可以设置全局错误文件,如果要覆盖,可以将以下行添加到“account.php”

ini_set(“log_errors”,1);

ini_set(“error_log”,“/ path / to / logfile.log”);

error_log(“一个错误”);

  • 或者,如果您使用框架,则可以查看文档以了解如何自定义错误。框架将具有高级日志记录机制。

答案 1 :(得分:1)

您无法使用php.ini根据生成致命错误的php文件登录多个文件。

您可以尝试使用register_shutdown_function来捕获致命错误,然后使用您在get_last_error的数组响应中获得的['file']来记录单个文件。

如果您使用try / catch异常练习面向对象编程,则可以使用一些日志记录方法将错误分离到单个文件中。

答案 2 :(得分:1)

php.ini文件中的选项本身并不灵活(这实际上是一件好事,因此其他程序如logrotate可以以有效的方式应用)。您可以通过应用程序来查看所需的内容(无论是框架还是纯自定义代码)。如果您使用的是Linux系统或在Windows上的事件查看器中进行搜索,您可以掏出您需要的内容。这实际上取决于您的具体需求。

答案 3 :(得分:0)

您可以在应用程序中创建自定义错误处理程序。您应该可以从这里获得所有需要的详细信息

// error handler function
function myErrorHandler($errno, $errstr, $errfile, $errline) {
 // file_put_contents
}

set_error_handler("myErrorHandler");

更多信息: http://php.net/manual/en/function.set-error-handler.php

我会重新考虑将错误日志保存在不同目录中的目的,因为它会使您的应用程序变得混乱。单独从不同文件夹中获取日志不是那么方便,如果您想要使用elasticsearch添加Logstash等日志监视工具,您将被迫进行更复杂的设置