【发布时间】:2014-04-16 16:34:29
【问题描述】:
在一个遗留项目中,我发现了一个奇怪的日志记录解决方案。服务层中的所有类都具有获取日志的方法签名。在挖掘代码和大量对话后,我找到了原因。
我们需要为每个已处理的业务事务创建一个不同的日志文件。因此,如果一个新的业务事务启动,则会创建一个新的日志并将其放入每个调用的方法中。
这看起来很奇怪。
在我开始重写 Log.getLogger(..) 方法或其他方法之前。有谁知道将每笔业务交易记录在不同文件中的更好方法?
【问题讨论】:
-
我将拥有一个日志文件并为每笔交易使用一个唯一的 ID。然后,您可以 grep 进行单个事务。您不需要为每个文件创建一个文件。尤其是因为这有使用大量资源的风险。
-
不幸的是,每笔交易我都需要一个不同的日志文件。感谢您的 cmets。雾文件被发送给发起业务交易的客户。按照你的方式,我必须为日志文件构建一个解析器来提取这些消息。可能是一种选择。但我更喜欢使用记录器本身完成此操作的方式。
-
我要做的是将输出写入发送到源的缓冲区。这将绕过对记录器或日志文件的需求。例如一个普通的Socket连接,你把结果写入socket。
标签: java logging transactions log4j apache-commons-logging