我有一个大型的企业级PHP应用程序,有很多调用error_log。
我认为,有时,当抛出异常时,错误日志会填满磁盘并导致服务器问题。
如何在php中更好地利用我的日志工具?特别是我不太了解如何在现实世界中管理和使用php的error_log功能。
是否还有其他更合适的日志记录机制?就像info_log或日志到期实用程序一样,它们会在日志文件太大时删除/旋转日志文件?最后,我可以拥有多个日志文件吗?
答案 0 :(得分:3)
嗯,对于初学者来说,并不是所有的错误都应该被记录下来。如果错误可以在软件中进行处理(其中90%应该是,而另外50%[抱歉俄罗斯人:P]应该不存在)。只存在一小部分(与输入错误相关),并且不应记录那些。
使用例外而不是依赖于错误,可以处理异常,当它们不是时,它们会停止脚本。扩展Exception类以允许更多类型的异常(InvalidArgumentException
,MathException
,LoggedErrorException
),获得创造性,我已经创建了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来关闭/最小化。
最后,您可以编写自己的日志记录类,这是非常简单和出色的解决方案,因为它将是非常简短的代码片段,并且可以根据您的意愿真正工作。我通常都这样做。 谢谢:))