您好我使用Log4j2进行日志记录,我对如何根据邮件前缀将邮件记录到其他文件感到困惑。
例如,目前所有邮件都记录在一个日志文件夹中 我的一组消息如下所示: 'com.project.latency:ProjectName = [MooPointProject] .......'
我的一些其他日志消息的格式如下: 'com.project.latency:ProjectName = [DataPlaneProject] .......'
我想在特定文件中记录包含MooPointProject的消息,并在单独的日志文件中记录包含DataPlaneProject的消息。
除了更改日志记录级别本身之外,还有一种特定的方法吗?
答案 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。