使用logback在日志文件中打印标头

时间:2016-03-15 05:26:59

标签: logback

我想在使用logback生成的日志文件顶部打印标题行。我的logback.xml包含以下内容:

<appender name="MyFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <File>path/to/logs/MyFile.log</File>
    <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
      <layout class="ch.qos.logback.classic.PatternLayout">
      <fileHeader>Some header</fileHeader>
      <pattern>%d{HH:mm:ss,SSS}:%m%n</pattern>
      </layout>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>path/to/logs/MyFile.log.%d{yyyy-MM-dd}.%i</fileNamePattern>
    </rollingPolicy>
  </appender> 

当创建新的日志文件时,根据需要在顶部打印标题,但问题是如果日志文件已经存在,那么在重新启动tomcat时,将再次打印标题。我需要在每个日志文件中只打印一次标题。

我是新手。任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以创建扩展customPatternLayout的{​​{1}},然后覆盖ch.qos.logback.classic.PatternLayout并检查标头是否已存在。

以下代码对我有用:

getFileHeader