blacklong opened a new issue, #3927:
URL: https://github.com/apache/logging-log4j2/issues/3927
## Description
my log4j2.xml
<Configuration status="info" monitorInterval="120">
<Properties>
<Property name="logPath">${web:rootDir}/../data/log</Property>
</Properties>
<Appenders>
<Console name="CONSOLE" target="SYSTEM_OUT">
<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss}] [%t] %-5p %l
%m%n"/>
</Console>
<RollingRandomAccessFile name="QueryOrderAppender"
immediateFlush="false"
fileName="${logPath}/QueryOrderAppender.log"
filePattern="${logPath}/QueryOrderAppender-%d{yyyy-MM-dd}-%i.log">
<Filters><ThresholdFilter level="INFO" onMatch="ACCEPT"
onMismatch="DENY"/></Filters>
<PatternLayout charset="UTF-8"
pattern="[%d{yyyy-MM-dd
HH:mm:ss.SSS}][%X{log4jMDCNum}][%X{shopId}][%X{userId}][%p][%t][%l][%x]
%n%m%n"/>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingRandomAccessFile>
-------------------------
AbstractRolloverStrategy.java
protected SortedMap<Integer, Path> getEligibleFiles(final String
currentFile, final String path,
final String logfilePattern, final boolean isAscending)
param currentFile value: ${web:rootDir}\..\data\log\QueryOrderAppender.log
param path value: :
E:\git\xxxx\target\20150609.16238\/../data/log/QueryOrderAppender.log
-------------------------
line 136:
final Path current = currentFile.length() > 0 ? new
File(currentFile).toPath() : null;
LOGGER.debug("Current file: {}", currentFile);
because currentFile including ${web:rootDir}, java.io.File.toPath error,
is it a bug?
I think shoule using param path.
## Configuration
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.17.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>2.17.2</version>
</dependency>
**Operating system:** [OS and version]
Win10
**JDK:** [JDK distribution and version]
jdk1.8.0_451
## Logs
java.nio.file.InvalidPathException: Illegal char <:> at index 5:
${web:rootDir}\..\data\log\QueryOrderAppender.log
at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)
at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)
at java.io.File.toPath(File.java:2273)
at
org.apache.logging.log4j.core.appender.rolling.AbstractRolloverStrategy.getEligibleFiles(AbstractRolloverStrategy.java:136)
at
org.apache.logging.log4j.core.appender.rolling.AbstractRolloverStrategy.getEligibleFiles(AbstractRolloverStrategy.java:96)
at
org.apache.logging.log4j.core.appender.rolling.AbstractRolloverStrategy.getEligibleFiles(AbstractRolloverStrategy.java:87)
at
org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.purgeAscending(DefaultRolloverStrategy.java:415)
at
org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.purge(DefaultRolloverStrategy.java:402)
at
org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.rollover(DefaultRolloverStrategy.java:531)
at
org.apache.logging.log4j.core.appender.rolling.RollingFileManager.rollover(RollingFileManager.java:502)
at
org.apache.logging.log4j.core.appender.rolling.RollingFileManager.rollover(RollingFileManager.java:392)
at
org.apache.logging.log4j.core.appender.rolling.RollingFileManager.checkRollover(RollingFileManager.java:308)
at
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.append(RollingRandomAccessFileAppender.java:240)
at
org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:161)
at
org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:134)
at
org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:125)
at
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:89)
at
org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:675)
at
org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:633)
at
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:616)
at
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:604)
at
org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:98)
at
org.apache.logging.log4j.core.async.AsyncLogger.actualAsyncLog(AsyncLogger.java:488)
at
org.apache.logging.log4j.core.async.RingBufferLogEvent.execute(RingBufferLogEvent.java:156)
at
org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:51)
at
org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:29)
at
com.lmax.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:168)
at
com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125)
at java.lang.Thread.run(Thread.java:750)
## Reproduction
[An isolated test reproducing the test.
JUnit tests similar to the ones in the code base are extremely appreciated.]
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]