使用通用模块将日志记录到多个文件

时间:2014-07-26 17:26:46

标签: java logback

我知道可以根据包记录多个文件。我的问题略有不同。鉴于以下包装:

 - foo.bar.moduleA
 - foo.bar.moduleB
 - foo.bar.commonModule

在这种情况下,moduleA和moduleB具有从commonModule调用的代码。我遇到的问题是我得到两个日志文件,只包含来自moduleA的日志记录或仅来自moduleB的日志记录。我知道这是因为我正在使用的包级别日志记录,但我不知道如何扩展它以说明从此包以及稍后在此线程中调用的任何其他包中记录所有内容。希望这是有道理的。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我认为您可以使用MDC来完成,但是当您启动moduleA或moduleB线程时,您需要检测代码,以便在MDC中放置一些内容:

MDC.put("module", "moduleA"); // or B

然后,您可以将%X{module}添加到您的模式并使用grep / whatever过滤内容,或者您​​可以使用SiftingAppenderMDCBasedDiscriminator。有一个例子in this page