0

我的软件使用面向服务的体系结构 (SOA)。所有服务(为简单起见,我们称它们为模块)写入单个日志文件。我想区分模块之间的日志记录。下面是我希望我的日志消息的样子。

[MODULE-1] INFO - This is a test log message from MODULE ONE
[MODULE-2] INFO - This is a test log message from MODULE TWO

我看到这样做的好处是我可以在“跟踪”日志时获取必要的信息。此外,在分析日志时,我可以 grep 必要的模块信息。这是可以实现的吗?我使用 log4j 作为我的日志记录实用程序。请注意,每个模块可以有多个包(包的层次结构)。我遇到的最接近实现这一点的方法是使用 MDC。

4

1 回答 1

0

我能够通过使用 MDC (MappedDiagnosticContext) 来实现这一点。幸运的是,我的 SOA 框架允许我以非常通用的方式放置上下文信息(服务/模块名称)。下面是为我剪下的代码。

MDC.put("MODULE", getServiceName())

当然,我能够使用 EnhancedPatternLayout 中的 -X 标记检索信息。

于 2014-07-09T17:08:26.243 回答