我目前正在开展一个项目,并且伸出援助之手,我已经更改了我的php.ini文件,以便将错误记录到“php_errors.log” PHP文件返回错误的目录。PHP错误日志 - php.ini php错误的唯一文件
我想知道,在网上搜索(也许我不是这样写的话),有没有什么办法在php.ini文件中为不同的错误设置一个唯一的文件名。
例如,如果我们说account.php发生错误,是否有任何方法通过ini文件记录错误文件“account_php_errors.log”?
我目前正在开展一个项目,并且伸出援助之手,我已经更改了我的php.ini文件,以便将错误记录到“php_errors.log” PHP文件返回错误的目录。PHP错误日志 - php.ini php错误的唯一文件
我想知道,在网上搜索(也许我不是这样写的话),有没有什么办法在php.ini文件中为不同的错误设置一个唯一的文件名。
例如,如果我们说account.php发生错误,是否有任何方法通过ini文件记录错误文件“account_php_errors.log”?
您可以在应用程序中创建自定义错误处理程序。您应该能够从这里
// 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等日志监视工具,您将被迫执行更复杂的设置。
您无法使用php.ini根据生成致命错误的php文件登录到多个文件。
您可以尝试并使用register_shutdown_function来捕捉致命错误,然后使用['file']
登录到单个文件,您可以通过数组响应get_last_error。
如果你正在用try/catch Exceptions实践面向对象编程,你可以使用一些日志记录方法将错误分离成单个文件。
感谢您的回复,我会更多地关注自定义错误处理,而不是您提到的内容,但对于知道这一点非常有用,我可能会在某个时候回顾此问题。 –
从您可以设置一个全球性的错误文件,如果你想覆盖,你可以添加以下行到“account.php”
的ini_set ini文件(“log_errors”,1);
ini_set(“error_log”,“/path/to/logfile.log”);
error_log(“one error”);
谢谢你的回复,我会多看看这个。 –
php.ini文件内部的选项本身并不灵活(这实际上是一件好事,所以其他程序如logrotate可以以有效的方式应用)。你可以看看通过你的应用程序来完成你需要的东西(无论是一个框架还是纯粹的自定义代码)。如果您在Linux系统上或在Windows上的事件查看器中进行搜索,则可以只想要清楚所需的内容。这真的取决于你的具体需求是什么。
感谢您的回复,我会看看自定义错误处理程序。 –
感谢您的回复和代码示例,我会多看一看。 –