我想在使用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时,将再次打印标题。我需要在每个日志文件中只打印一次标题。
我是新手。任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:1)
您可以创建扩展customPatternLayout
的{{1}},然后覆盖ch.qos.logback.classic.PatternLayout
并检查标头是否已存在。
以下代码对我有用:
getFileHeader