将特定INFO日志行发送到其他文件

时间:2017-07-28 15:40:39

标签: java logging log4j appender

我有一个特定的日志行,其中包含一些信息,需要登录到其他文件以备将来使用。我已经在系统中配置了log4j.properties来记录必要的信息。

例如: -

[2017-07-28 20:33:07,798] INFO - 'john@doe.com' logged in at [2017-07-28 20:33:07,798+0530]

我必须过滤掉这个并附加到org.apache.log4j.DailyRollingFileAppender

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

以下是xml配置的解决方案。您可以找到详细信息here。例如,您可以指定两个appender:一个用于存储所有行,另一个用于存储特殊行。然后,对于存储特殊行的appender,按以下方式设置过滤器(RollingFileAppender的示例):

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

同时检查此question,您可以在其中找到有关如何使用属性配置相同内容的线索。