Logback sift RollingFileAppender not rotating when run from WAR

huangapple go评论121阅读模式
英文:

Logback sift RollingFileAppender not rotating when run from WAR

问题

我有一个logback配置,可以将日志记录到多个文件,包括名为servernexus.log的主日志文件。每个日志文件都应该由RollingFileAppender进行轮换。当我从eclipse运行,使用logback配置文件和$CLASSPATH中的其他所有内容时,logback会正确地对servernexus.log进行轮换。但当我从生产WAR文件运行时,日志记录工作正常,但servernexus.log的轮换从未发生。

以下是logback-server-win32event.xml的内容:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <appender name="SiftAppender" class="ch.qos.logback.classic.sift.SiftingAppender">
  4. <discriminator>
  5. <key>discriminatorId</key>
  6. <defaultValue>${cmb.log.file.name}</defaultValue>
  7. </discriminator>
  8. <sift>
  9. <appender name="FILE-${discriminatorId}" class="ch.qos.logback.core.rolling.RollingFileAppender">
  10. <file>${cmb.log.dir}/${discriminatorId}.log</file>
  11. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  12. <!-- daily rollover -->
  13. <fileNamePattern>${cmb.log.dir}/archive/${discriminatorId}.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
  14. <!-- keep ${maxbackupindex} days' worth of history capped at ${maxfilesize} total size -->
  15. <maxHistory>${cmb.log.maxbackupindex}</maxHistory>
  16. <totalSizeCap>${cmb.log.maxfilesize}</totalSizeCap>
  17. </rollingPolicy>
  18. <encoder>
  19. <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %msg%n</pattern>
  20. </encoder>
  21. </appender>
  22. </sift>
  23. </appender>
  24. <!-- ...其他logger配置... -->
  25. <root level="WARN">
  26. <appender-ref ref="SiftAppender" />
  27. </root>
  28. </configuration>

如您所见,我使用了一个判别器,该判别器在logback初始化之前在运行时设置为系统属性。您可以在下面的输出中看到"cmb.log.file.name"属性。

当我从eclipse运行时,它工作并报告了预期的TimeBasedRollingPolicy行:

  1. 11:19:40,144 INFO Log Configurator T1 | Logging PROP cmb.log.file = C:\Users\mcooper\ws\cmb.0\run\server\log\servernexus.log
  2. 11:19:40,194 INFO Log Configurator T1 | Configuring log to file for logback var "log.file.name" = "servernexus"
  3. 11:19:40,194 INFO Log Configurator T1 | Logging PROP cmb.log.file.name = servernexus
  4. 11:19:40,194 INFO Log Configurator T1 | Logging PROP cmb.log.maxfilesize = 50MB
  5. 11:19:40,194 INFO Log Configurator T1 | Logging PROP cmb.log.maxbackupindex = 5
  6. ...
  7. 11:19:41,015 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@2076287037 - Will use gz compression
  8. 11:19:41,017 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@2076287037 - Will use the pattern C:/Users/mcooper/ws/cmb/6.0/run/server/log/archive/servernexus.%d{yyyy-MM-dd}.log for the active file
  9. ...
  10. 11:19:41,066 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE-servernexus] - Active log file name: C:\Users\mcooper\ws\cmb.0\run\server\log/servernexus.log

但当我从生产WAR文件运行时,logback输出不会报告任何TimeBasedRollingPolicy内容:

  1. 10:55:10,673 INFO Log Configurator T1 | Logging PROP cmb.log.dir = C:\ProgramData\XXX\YYY\log
  2. 10:55:10,673 INFO Log Configurator T1 | Logging PROP cmb.log.file = C:\ProgramData\XXX\YYY\log\servernexus.log
  3. ...
  4. 10:55:10,782 INFO Log Configurator T1 | Logging [servernexus.log] to C:\ProgramData\XXX\YYY\log\servernexus.log using logback-server-win32event.xml
  5. ...

希望这个翻译对您有帮助。如有任何问题,请随时提问。

英文:

I have a logback config that logs to multiple files including the primary log file called servernexus.log. Each log file is suppose to be rotated by RollingFileAppender. When I run from eclipse with the logback config file and everything else in my $CLASSPATH the servernexus.log is rotated properly by logback. When I run from my production WAR file logging works but the servernexus.log rotation never happens.

Here's the logback-server-win32event.xml:

  1. &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
  2. &lt;configuration&gt;
  3. &lt;appender name=&quot;SiftAppender&quot; class=&quot;ch.qos.logback.classic.sift.SiftingAppender&quot;&gt;
  4. &lt;discriminator&gt;
  5. &lt;key&gt;discriminatorId&lt;/key&gt;
  6. &lt;defaultValue&gt;${cmb.log.file.name}&lt;/defaultValue&gt;
  7. &lt;/discriminator&gt;
  8. &lt;sift&gt;
  9. &lt;appender name=&quot;FILE-${discriminatorId}&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;
  10. &lt;file&gt;${cmb.log.dir}/${discriminatorId}.log&lt;/file&gt;
  11. &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.TimeBasedRollingPolicy&quot;&gt;
  12. &lt;!-- daily rollover --&gt;
  13. &lt;fileNamePattern&gt;${cmb.log.dir}/archive/${discriminatorId}.%d{yyyy-MM-dd}.log.gz&lt;/fileNamePattern&gt;
  14. &lt;!-- keep ${maxbackupindex} days&#39; worth of history capped at ${maxfilesize} total size --&gt;
  15. &lt;maxHistory&gt;${cmb.log.maxbackupindex}&lt;/maxHistory&gt;
  16. &lt;totalSizeCap&gt;${cmb.log.maxfilesize}&lt;/totalSizeCap&gt;
  17. &lt;/rollingPolicy&gt;
  18. &lt;encoder&gt;
  19. &lt;pattern&gt;%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %msg%n&lt;/pattern&gt;
  20. &lt;/encoder&gt;
  21. &lt;/appender&gt;
  22. &lt;/sift&gt;
  23. &lt;/appender&gt;
  24. &lt;logger name=&quot;org.apache&quot; level=&quot;WARN&quot;/&gt;
  25. &lt;logger name=&quot;org.hibernate&quot; level=&quot;INFO&quot;/&gt;
  26. &lt;logger name=&quot;org.hibernate.type&quot; level=&quot;ERROR&quot;/&gt;
  27. &lt;logger name=&quot;org.hibernate.id&quot; level=&quot;ERROR&quot;/&gt;
  28. &lt;logger name=&quot;org.hibernate.cfg.annotations&quot; level=&quot;WARN&quot;/&gt;
  29. &lt;logger name=&quot;org.hibernate.tool.hbm2ddl&quot; level=&quot;WARN&quot;/&gt;
  30. &lt;!-- DEBUG output shows db user password: --&gt;
  31. &lt;logger name=&quot;org.hibernate.jpa.internal.util.LogHelper&quot; level=&quot;WARN&quot;/&gt;
  32. &lt;!-- DEBUG output shows db user password: --&gt;
  33. &lt;logger name=&quot;org.hibernate.internal.util.EntityPrinter&quot; level=&quot;WARN&quot;/&gt;
  34. &lt;logger name=&quot;com.mchange&quot; level=&quot;INFO&quot;/&gt;
  35. &lt;logger name=&quot;org.springframework&quot; level=&quot;WARN&quot;/&gt;
  36. &lt;logger name=&quot;org.quartz&quot; level=&quot;INFO&quot;/&gt;
  37. &lt;!-- HtmlUnit - turn off debug by debug --&gt;
  38. &lt;logger name=&quot;com.gargoylesoftware.htmlunit&quot; level=&quot;INFO&quot;/&gt;
  39. &lt;logger name=&quot;org.eclipse&quot; level=&quot;WARN&quot;/&gt;
  40. &lt;!-- Disable &quot;WARN XXX scanned from multiple locations&quot; --&gt;
  41. &lt;logger name=&quot;org.eclipse.jetty.annotations.AnnotationParser&quot; level=&quot;ERROR&quot;/&gt;
  42. &lt;if condition=&#39;isDefined(&quot;logging.jetty.level&quot;)&#39;&gt;
  43. &lt;then&gt;
  44. &lt;logger name=&quot;org.eclipse.jetty&quot; level=&quot;${logging.jetty.level}&quot;/&gt;
  45. &lt;/then&gt;
  46. &lt;else&gt;
  47. &lt;logger name=&quot;org.eclipse.jetty&quot; level=&quot;INFO&quot;/&gt;
  48. &lt;/else&gt;
  49. &lt;/if&gt;
  50. &lt;root level=&quot;WARN&quot;&gt;
  51. &lt;appender-ref ref=&quot;SiftAppender&quot; /&gt;
  52. &lt;/root&gt;
  53. &lt;/configuration&gt;

As you can see I'm using a discriminator which is set as a system property at runtime prior to logback being initialized. You can see the "cmb.log.file.name" property in the output below.

When I run from eclipse it works and reports the expected TimeBasedRollingPolicy lines:

  1. 11:19:40,144 INFO Log Configurator T1 | Logging PROP cmb.log.file = C:\Users\mcooper\ws\cmb.0\run\server\log\servernexus.log
  2. 11:19:40,194 INFO Log Configurator T1 | Configuring log to file for logback var &quot;log.file.name&quot; = &quot;servernexus&quot;
  3. 11:19:40,194 INFO Log Configurator T1 | Logging PROP cmb.log.file.name = servernexus
  4. 11:19:40,194 INFO Log Configurator T1 | Logging PROP cmb.log.maxfilesize = 50MB
  5. 11:19:40,194 INFO Log Configurator T1 | Logging PROP cmb.log.maxbackupindex = 5
  6. 11:19:40,303 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback-server-win32event.xml] at [file:/C:/Users/mcooper/ws/cmb/6.0/CmbProduct/Common/bin/main/logback-server-win32event.xml]
  7. 11:19:40,440 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.classic.sift.SiftingAppender]
  8. 11:19:40,455 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [SiftAppender]
  9. 11:19:40,478 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.sift.MDCBasedDiscriminator] for [discriminator] property
  10. 11:19:40,493 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [org.mangogrove.logbackwela.Win32EventLogAppender]
  11. 11:19:40,496 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [EventLogAppender]
  12. 11:19:40,501 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.apache] to WARN
  13. 11:19:40,501 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.hibernate] to INFO
  14. 11:19:40,501 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.hibernate.type] to ERROR
  15. 11:19:40,501 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.hibernate.id] to ERROR
  16. 11:19:40,501 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.hibernate.cfg.annotations] to WARN
  17. 11:19:40,501 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.hibernate.tool.hbm2ddl] to WARN
  18. 11:19:40,501 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.hibernate.jpa.internal.util.LogHelper] to WARN
  19. 11:19:40,501 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.hibernate.internal.util.EntityPrinter] to WARN
  20. 11:19:40,501 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [com.mchange] to INFO
  21. 11:19:40,501 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.springframework] to WARN
  22. 11:19:40,501 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.quartz] to INFO
  23. 11:19:40,502 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [com.gargoylesoftware.htmlunit] to INFO
  24. 11:19:40,502 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.eclipse] to WARN
  25. 11:19:40,872 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.eclipse.jetty] to INFO
  26. 11:19:40,872 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to WARN
  27. 11:19:40,872 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [SiftAppender] to Logger[ROOT]
  28. 11:19:40,873 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [EventLogAppender] to Logger[ROOT]
  29. 11:19:40,873 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
  30. 11:19:40,878 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@64485a47 - Registering current configuration as safe fallback point
  31. 2020-09-01 11:19:40.952:INFO::main: Logging initialized @1106ms to org.eclipse.jetty.util.log.StdErrLog
  32. 11:19:40,979 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
  33. 11:19:40,985 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE-servernexus]
  34. 11:19:40,993 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@2076287037 - setting totalSizeCap to 50 MB
  35. 11:19:41,015 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@2076287037 - Will use gz compression
  36. 11:19:41,017 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@2076287037 - Will use the pattern C:/Users/mcooper/ws/cmb/6.0/run/server/log/archive/servernexus.%d{yyyy-MM-dd}.log for the active file
  37. 11:19:41,024 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - The date pattern is &#39;yyyy-MM-dd&#39; from file name pattern &#39;C:/Users/mcooper/ws/cmb/6.0/run/server/log/archive/servernexus.%d{yyyy-MM-dd}.log.gz&#39;.
  38. 11:19:41,024 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Roll-over at midnight.
  39. 11:19:41,026 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Setting initial period to Tue Sep 01 11:17:12 PDT 2020
  40. 11:19:41,028 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
  41. 11:19:41,066 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE-servernexus] - Active log file name: C:\Users\mcooper\ws\cmb.0\run\server\log/servernexus.log
  42. 11:19:41,066 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE-servernexus] - File property is set to [C:\Users\mcooper\ws\cmb.0\run\server\log/servernexus.log]

When I run from production WAR file the logback output does not report anything for TimeBasedRollingPolicy:

  1. 10:55:10,673 INFO Log Configurator T1 | Logging PROP cmb.log.dir = C:\ProgramData\XXX\YYY\log
  2. 10:55:10,673 INFO Log Configurator T1 | Logging PROP cmb.log.file = C:\ProgramData\XXX\YYY\log\servernexus.log
  3. 10:55:10,767 INFO Log Configurator T1 | Configuring log to file for logback var &quot;log.file.name&quot; = &quot;servernexus&quot;
  4. 10:55:10,767 INFO Log Configurator T1 | Logging PROP cmb.log.file.name = servernexus
  5. 10:55:10,767 INFO Log Configurator T1 | Logging PROP cmb.log.maxfilesize = 50MB
  6. 10:55:10,767 INFO Log Configurator T1 | Logging PROP cmb.log.maxbackupindex = 5
  7. 10:55:10,782 INFO Log Configurator T1 | Logging [servernexus.log] to C:\ProgramData\XXX\YYY\log\servernexus.log using logback-server-win32event.xml
  8. 2020-09-01 10:55:12.236:INFO::main: Logging initialized @1792ms to org.eclipse.jetty.util.log.StdErrLog
  9. SLF4J: Class path contains multiple SLF4J bindings.
  10. SLF4J: Found binding in [jar:file:/C:/Users/s-cmbtest/AppData/Local/Temp/yyy_console_wartmp_6.0.79/webapp/WEB-INF/lib/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
  11. SLF4J: Found binding in [jar:file:/C:/Program%20Files/XXX/YYY/lib/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
  12. SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
  13. 10:55:59,322 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback-server-win32event.xml] at [jar:file:/C:/Users/s-cmbtest/AppData/Local/Temp/yyy_console_wartmp_6.0.79/webapp/WEB-INF/lib/Common-6.0.79.jar!/logback-server-win32event.xml]
  14. 10:55:59,322 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback-server-win32event.xml] occurs multiple times on the classpath.
  15. 10:55:59,322 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback-server-win32event.xml] occurs at [jar:file:/C:/Users/s-cmbtest/AppData/Local/Temp/yyy_console_wartmp_6.0.79/webapp/WEB-INF/lib/Common-6.0.79.jar!/logback-server-win32event.xml]
  16. 10:55:59,322 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback-server-win32event.xml] occurs at [jar:file:/C:/Program%20Files/XXX/YYY/lib/Common-6.0.79.jar!/logback-server-win32event.xml]
  17. 10:55:59,338 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@1f05b63d - URL [jar:file:/C:/Users/s-cmbtest/AppData/Local/Temp/yyy_console_wartmp_6.0.79/webapp/WEB-INF/lib/Common-6.0.79.jar!/logback-server-win32event.xml] is not of type file
  18. 10:55:59,448 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
  19. 10:55:59,448 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.classic.sift.SiftingAppender]
  20. 10:55:59,448 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [SiftAppender]
  21. 10:55:59,463 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.sift.MDCBasedDiscriminator] for [discriminator] property
  22. 10:55:59,463 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [org.mangogrove.logbackwela.Win32EventLogAppender]
  23. 10:55:59,479 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [EventLogAppender]
  24. 10:55:59,479 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.apache] to WARN
  25. 10:55:59,479 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.hibernate] to INFO
  26. 10:55:59,479 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.hibernate.type] to ERROR
  27. 10:55:59,479 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.hibernate.id] to ERROR
  28. 10:55:59,479 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.hibernate.cfg.annotations] to WARN
  29. 10:55:59,479 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.hibernate.tool.hbm2ddl] to WARN
  30. 10:55:59,479 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.hibernate.jpa.internal.util.LogHelper] to WARN
  31. 10:55:59,479 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.hibernate.internal.util.EntityPrinter] to WARN
  32. 10:55:59,479 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [com.mchange] to INFO
  33. 10:55:59,479 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.springframework] to WARN
  34. 10:55:59,479 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.quartz] to INFO
  35. 10:55:59,479 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [com.gargoylesoftware.htmlunit] to INFO
  36. 10:55:59,479 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.eclipse] to WARN
  37. 10:55:59,775 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.eclipse.jetty] to INFO
  38. 10:55:59,775 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to WARN
  39. 10:55:59,775 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [SiftAppender] to Logger[ROOT]
  40. 10:55:59,775 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [EventLogAppender] to Logger[ROOT]
  41. 10:55:59,775 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
  42. 10:55:59,775 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@524b1c70 - Registering current configuration as safe fallback point

答案1

得分: 0

我不是这方面的专家,但我认为以下建议可能有助于找到问题。在配置中启用调试以检查logback,并且您缺少了%i。从logback文档中的第4章的Appenders中可以看到以下内容:

"请注意,除了%d之外,还有"%i"转换标记。 %i和%d标记都是强制性的。每当当前日志文件在当前时间段结束之前达到maxFileSize时,它将以递增的索引进行归档,从0开始。"

英文:

I am not a expert of this but here is what I think should help find the issue. Enable debug in the configuration to check logback and you are missing the %i . From the Chapter 4 of the Appenders in logback documentation

"Note the "%i" conversion token in addition to "%d". Both the %i and %d tokens are mandatory. Each time the current log file reaches maxFileSize before the current time period ends, it will be archived with an increasing index, starting at 0."

答案2

得分: 0

我终于搞清楚了。Jetty 会将 logback、slf4j 等类加载两次。解决方法是告诉 Jetty 将这些类视为系统类:

  1. WebAppContext.addSystemClasses(server, "org.slf4j.", "ch.qos.logback.", "org.apache.commons.logging.", "org.apache.log4j.", "org.codehaus.janino.");

如此简单,对吧? Logback sift RollingFileAppender not rotating when run from WAR

英文:

I finally figured this out. The logback, slf4j, etc classes where being loaded twice by jetty. The fix was to tell jetty to treat these classes as system classes:

  1. WebAppContext.addSystemClasses(server, &quot;org.slf4j.&quot;, &quot;ch.qos.logback.&quot;, &quot;org.apache.commons.logging.&quot;, &quot;org.apache.log4j.&quot;, &quot;org.codehaus.janino.&quot;);

So simple right? Logback sift RollingFileAppender not rotating when run from WAR

huangapple
  • 本文由 发表于 2020年9月2日 03:37:39
  • 转载请务必保留本文链接:https://go.coder-hub.com/63694329.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定