Php日志记录,错误日志和自定义

时间:2012-01-07 18:35:43

标签: php logging large-files

我有一个大型的企业级PHP应用程序,有很多调用error_log。

我认为,有时,当抛出异常时,错误日志会填满磁盘并导致服务器问题。

如何在php中更好地利用我的日志工具?特别是我不太了解如何在现实世界中管理和使用php的error_log功能。

是否还有其他更合适的日志记录机制?就像info_log或日志到期实用程序一样,它们会在日志文件太大时删除/旋转日志文件?最后,我可以拥有多个日志文件吗?

2 个答案:

答案 0 :(得分:3)

嗯,对于初学者来说,并不是所有的错误都应该被记录下来。如果错误可以在软件中进行处理(其中90%应该是,而另外50%[抱歉俄罗斯人:P]应该不存在)。只存在一小部分(与输入错误相关),并且不应记录那些。

使用例外而不是依赖于错误,可以处理异常,当它们不是时,它们会停止脚本。扩展Exception类以允许更多类型的异常(InvalidArgumentExceptionMathExceptionLoggedErrorException),获得创造性,我已经创建了30个异常类型库。请确保do it right!

除此之外,error_log将记录大量细节,使用异常,您可以记录您想要的任何内容。请参阅 Filesystem Functions

答案 1 :(得分:1)

在我看来,error_log足够好并为我们提供了足够的功能。是的,您可以拥有多个日志文件,您只需要管理它们。:) 例如,您可以使用以下内容:

ini_set('error_log','my_error_file.log');

关于自动删除的事情,我认为如果你真的想做自动删除,没有使用error_log的优势。你应该把它们转储到某个地方,或者只是使用php.ini中的error_reporting来关闭/最小化。

最后,您可以编写自己的日志记录类,这是非常简单和出色的解决方案,因为它将是非常简短的代码片段,并且可以根据您的意愿真正工作。我通常都这样做。 谢谢:))