2017-02-17 83 views
0

我目前正在开展一个项目,并且伸出援助之手,我已经更改了我的php.ini文件,以便将错误记录到“php_errors.log” PHP文件返回错误的目录。PHP错误日志 - php.ini php错误的唯一文件

我想知道,在网上搜索(也许我不是这样写的话),有没有什么办法在php.ini文件中为不同的错误设置一个唯一的文件名。

例如,如果我们说account.php发生错误,是否有任何方法通过ini文件记录错误文件“account_php_errors.log”?

回答

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

我会重新考虑的宗旨,为保持错误日志在不同的目录,因为它会使您的应用程序混乱。从单独的不同文件夹中挑选日志并不那么方便,如果您想要使用弹性搜索添加Logstash等日志监视工具,您将被迫执行更复杂的设置。

+0

感谢您的回复和代码示例,我会多看一看。 –

1

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

您可以尝试并使用register_shutdown_function来捕捉致命错误,然后使用['file']登录到单个文件,您可以通过数组响应get_last_error

如果你正在用try/catch Exceptions实践面向对象编程,你可以使用一些日志记录方法将错误分离成单个文件。

+0

感谢您的回复,我会更多地关注自定义错误处理,而不是您提到的内容,但对于知道这一点非常有用,我可能会在某个时候回顾此问题。 –

2

从您可以设置一个全球性的错误文件,如果你想覆盖,你可以添加以下行到“account.php”

的ini_set ini文件(“log_errors”,1);

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

error_log(“one error”);

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

谢谢你的回复,我会多看看这个。 –

1

php.ini文件内部的选项本身并不灵活(这实际上是一件好事,所以其他程序如logrotate可以以有效的方式应用)。你可以看看通过你的应用程序来完成你需要的东西(无论是一个框架还是纯粹的自定义代码)。如果您在Linux系统上或在Windows上的事件查看器中进行搜索,则可以只想要清楚所需的内容。这真的取决于你的具体需求是什么。

+0

感谢您的回复,我会看看自定义错误处理程序。 –