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


Php logging, error-log, and customization

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

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

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

是否有其他更合适的日志记录机制?像info_log或日志过期实用程序一样,一旦日志文件过大,就会删除/轮换日志文件?最后,我可以拥有多个日志文件吗?

首先,并不是所有的错误都应该被记录。如果可以在软件中处理错误(其中90%应该是,另外50%[对不起,俄罗斯人:P]应该不存在)。只有一小部分(与输入错误有关)应该存在,而且无论如何都不应该记录这些错误。

使用异常而不是依赖错误,可以处理异常,如果没有,则会停止脚本。扩展Exception类以允许更多类型的异常(InvalidArgumentExceptionMathExceptionLoggedErrorException),发挥创意,我已经创建了一个完整的30种异常类型库。只要确保你做对了!

除此之外,error_log将记录许多详细信息,通过使用异常,您可以记录任何您想要的信息。请参阅文件系统函数

在我看来,error_log足够好,为我们提供了足够的功能。是的,你可以有多个日志文件,你只需要管理它们。:)例如,你可以使用这样的东西:

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

关于自动删除的事情,我认为如果你真的想做自动删除,使用error_log并没有什么好处。您应该将它们转储到某个地方,或者使用php.ini中的error_reporting关闭日志记录/最小化日志记录

最后,您可以编写自己的日志类,这是一个非常简单和奇妙的解决方案,因为它将是非常短的代码片段,并且可以根据您的意愿进行工作。我通常也这么做。感谢:)