Details
-
Bug
-
Resolution: Unresolved
-
Critical
-
None
-
None
-
None
-
None
Description
the log file is create by seconds ,when log file is new create ,it's normal, if it's already exist,then exception hanppen:
RuntimeException in Action for tag [rollingPolicy] java.lang.IndexOutOfBoundsException: No group 1
at java.lang.IndexOutOfBoundsException: No group 1
at at java.util.regex.Matcher.group(Matcher.java:487)
at at ch.qos.logback.core.rolling.helper.FileFilterUtil.extractCounter(FileFilterUtil.java:109)
at at ch.qos.logback.core.rolling.helper.FileFilterUtil.findHighestCounter(FileFilterUtil.java:93)
at at ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP.computeCurrentPeriodsHighestCounterValue(SizeAndTimeBasedFNATP.java:70)
at at ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP.start(SizeAndTimeBasedFNATP.java:50)
at at ch.qos.logback.core.rolling.TimeBasedRollingPolicy.start(TimeBasedRollingPolicy.java:90)
at at ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end(NestedComplexPropertyIA.java:167)
at at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:317)
at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:196)
at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:182)
at at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:149)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:135)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:99)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:49)
at at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:77)
at at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:152)
at at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:85)
at at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
at at org.slf4j.LoggerFactory.bind(LoggerFactory.java:129)
at at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:108)
at at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:302)
at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:276)
at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:288)
at at LogTest.<clinit>(LogTest.java:8)
at at java.lang.Class.forName0(Native Method)
at at java.lang.Class.forName(Class.java:190)
at at com.intellij.rt.execution.application.AppMain.main(AppMain.java:122)
the follow is logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- 设置日志级别及是否自动扫描配置文件的修改 时间单位为:milliseconds、seconds、minutes和hours -->
<configuration debug="false" scan="true" scanPeriod="30 seconds">
<Encoding>UTF-8</Encoding>
<!-- D:/PROJECT_HOME/log -->
<property name=%26quot%3Blog%2Ebase%26quot%3B value="/cache11/qoss" />
<property name=%26quot%3Blog%2EbusinessType%26quot%3B value="wsutil" />
<timestamp key="byHour" datePattern="ss"/>
<timestamp key="byDay" datePattern="yyyyMMdd"/>
<appender name=%26quot%3Bconsole%26quot%3B class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d
[%thread] %-5level %logger - %msg%n
</pattern>
</encoder>
</appender>
<appender name=%26quot%3BdebugLogFile%26quot%3B
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.base}/logs/${log.businessType}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.base}/%d
/logs/${log.businessType}/%d
{ss}.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<!-- 独立的pattern -->
<encoder>
<pattern>%d
[%thread] %-5level %logger - %msg%n
</pattern>
</encoder>
</appender>
<appender name=%26quot%3BwarnLogFile%26quot%3B
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.base}/logs/${log.businessType}.log.wf</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.base}/%d
/logs/${log.businessType}/%d
{HH}.log.wf</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
<!-- 独立的pattern -->
<encoder>
<pattern>%d
[%thread] %-5level %logger - %msg%n
</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="debugLogFile"/>
<appender-ref ref="warnLogFile"/>
<appender-ref ref="console"/>
</root>
<!--log4jdbc -->
<logger name=%26quot%3Bjdbc%2Esqltiming%26quot%3B level="DEBUG">
</logger>
<logger name=%26quot%3Bjdbc%2Esqlonly%26quot%3B level="OFF">
</logger>
<logger name=%26quot%3Bjdbc%2Eaudit%26quot%3B level="OFF">
</logger>
<logger name=%26quot%3Bjdbc%2Eresultset%26quot%3B level="OFF">
</logger>
<logger name=%26quot%3Bjdbc%2Econnection%26quot%3B level="OFF">
</logger>
<logger name=%26quot%3Bjdbc%2Eresultsettable%26quot%3B level="OFF">
</logger>
</configuration>