Java - 记录业务事务

时间:2014-04-16 16:34:29

标签: java logging transactions log4j apache-commons-logging

在遗留项目中,我发现了一种奇怪的日志记录解决方案。服务层中的所有类都具有获取日志的方法签名。在深入研究代码和数字对话之后,我找到了原因。

我们需要为处理的每个业务事务提供不同的日志文件。因此,如果新的业务事务开始,则会创建一个新日志并将其放入每个被调用的方法中。

看起来很奇怪。

在我开始覆盖Log.getLogger(..)方法或其他之前。有谁知道在不同的文件中记录每个业务事务的更好方法?

提前致谢,

丹尼

1 个答案:

答案 0 :(得分:0)

嗯......你可以避免覆盖" Log.getLogger(...)"通过使用log4j库实现自定义appender。由于遗留应用程序将事务记录在文件中,因此它应该使用appender(或者可能有人已经编写了该自定义appender并且它正在您正在使用的应用程序中使用)。

在这种情况下,File Appender是最符合您需求的appender类型,可以是一个选项,您可以找到" FileAppender"的文档。这里:

http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/FileAppender.html

这是扩展这个课程的问题,例如:

MyCustomTransactionAppender extends FileAppender

然后你只需要根据你的需要覆盖这些方法。

希望这可以帮助您作为您面临的问题的替代方案。最好的问候!