最近我遇到了这样的问题。 我正在开发应用程序,其中日志记录非常重要。
通过该应用程序中的日志我的意思是消息,比如
(1)和(3)是一个特定请求/命令的消息 - 所以当我想查看日志时,我需要获取有关此请求日志线程的所有信息。
由于应用程序高度加载并且使用了很多AJAX,因此可以混合使用不同用户/操作/请求的日志消息。
暂时,我已经解决了这个问题:
我在请求开头创建了一些独特的UUID代码,并使用此唯一代码添加任何日志消息。所以,我可以通过简单的grep UNIX命令找到特定线程的所有消息。
解决了这个问题,但我不确定这是否是解决问题的最佳方案。看起来更像是重新发明轮子。 你会为这个问题找到什么解决方案?
答案 0 :(得分:1)
关注我的一些建议(如果你还没有实施过)
将每种不同类型的事件记录到单独的日志文件中,例如BookPurchases.log,InvoiceApprovals.log。这就是说保留所有内容的原始输出日志,以防它是重要事件的顺序而不是分类。
如果您还没有日志包,请使用日志包,例如The Log Package或Zend_Log,您可以在其中使用不同的日志记录优先级。
我不知道这对你有用,正如你所说的那样看起来非常可靠。
答案 1 :(得分:1)
如果您需要查看特定用户会话的所有日志,请使用
session_start()
在脚本的顶部,然后添加
session_id()
到每条日志消息的前面。
答案 2 :(得分:0)
多年来在Java世界中登录的事实标准是log4j。这已被移植到许多其他语言log4Net,log4Ruby和log4Php
我从未使用过log4php,但是如果它实现了与其他框架相同的模式/算法,它肯定会完成你的工作。
我不会声称它比karim79推荐的任何一个选项更好,只是它遵循经过验证的设计。