Lo4j config - 根据mesasge前缀的类型记录到不同的文件

时间:2017-07-27 22:18:12

标签: log4j2

您好我使用Log4j2进行日志记录,我对如何根据邮件前缀将邮件记录到其他文件感到困惑。

例如,目前所有邮件都记录在一个日志文件夹中 我的一组消息如下所示: 'com.project.latency:ProjectName = [MooPointProject] .......'

我的一些其他日志消息的格式如下: 'com.project.latency:ProjectName = [DataPlaneProject] .......'

我想在特定文件中记录包含MooPointProject的消息,并在单独的日志文件中记录包含DataPlaneProject的消息。

除了更改日志记录级别本身之外,还有一种特定的方法吗?

1 个答案:

答案 0 :(得分:1)

为每个项目名称设置一个appender。例如:

<RollingFile name="RollingFile" fileName="logs/MooPointProject.log"
             filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
  <RegexFilter regex=".*MooPointProject.*" onMatch="ACCEPT" onMismatch="DENY"/>
  <PatternLayout>
    <pattern>%d %p %c{1.} [%t] %m%n</pattern>
  </PatternLayout>
  <TimeBasedTriggeringPolicy />
</RollingFile>

<RollingFile name="RollingFile" fileName="logs/DataPlaneProject.log"
             filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
  <RegexFilter regex=".*DataPlaneProject.*" onMatch="ACCEPT" onMismatch="DENY"/>
  <PatternLayout>
    <pattern>%d %p %c{1.} [%t] %m%n</pattern>
  </PatternLayout>
  <TimeBasedTriggeringPolicy />
</RollingFile>

然后将两个appender分配给您的记录器。由于您的RegexpFilter仅接受项目特定的行,因此您将分别将它们转换为相应的文件。

P.S。 - 查找其他类型过滤器的详细信息here