私はlog4j 2.6.2でLog4j RollingFileAppenderをテストしています。Log4j RollingFileAppender毎分
毎分ログをローテーションしたいので、log3j2.xmlはここにある例の1つと非常に似ていますhttps://logging.apache.org/log4j/2.x/manual/appenders.html#RollingFileAppender。 これは私のlog4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="testlog4j2" packages="">
<Properties>
<Property name="baseDir">C:/tmp/testlog4</Property>
</Properties>
<Appenders>
<RollingFile name="RollingFile" fileName="${baseDir}/app.log"
filePattern="${baseDir}/$${date:yyyy-MM}/app-%d{yyyy-MM-dd-HH-mm}.log.gz">
<PatternLayout pattern="%d %p %c{1.} [%t] %m%n" />
<CronTriggeringPolicy schedule="0 0/1 * * * ?"/>
<DefaultRolloverStrategy>
<Delete basePath="${baseDir}" maxDepth="2">
<IfFileName glob="*/app-*.log.gz" />
<IfLastModified age="60d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<Loggers>
<Root level="ALL">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
であり、これは私がログを毎秒の書き込みアプリです。何が起こる
package testlog4j2;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class TestLog4j {
private final static Logger logger = LogManager.getLogger(TestLog4j.class);
public static void main(String[] args) {
try {
for (int i=1; i<=240; i++) {
logger.info("Hello");
Thread.sleep(1*1000);
}
} catch (Exception e) {
//e.printStackTrace();
logger.error("Excepcion general", e);
}
}
}
は次のとおりです。10:02015 Log4j2-Log4j2Scheduledシステムは最初の分のログをローテーション
たら、この
2016年7月28日15のように連続してエラーが表示されます-1エラーファイルC:¥tmp¥testlog4¥2016-07¥app-2016-07-28-15-10.log.gzをC:¥tmp¥testlog4¥2016-07¥app-2016-07に移動できません。 -28-15-10.log.gz:java.nio.file.NoSuchFileException C:\ tmp \ testlog4 \ 2016-07 \ app-2016-07-28-15-10.log.gz - > C:\ tmp \ testlog4 \ 2016-07 \ app-2016-07-28-15-10.log.gz
は毎分
- 60行のログを持っていない結果GZ用GZありません。代わりに、1行、2行、または3行のログがあります。
- メインログC:\ TMP \ testlog4 \ app.logは私が間違ってやっている何を何のコンテンツ
を持っていませんか?
ありがとうございました
こんにちは、 おかげで、私はこの<削除basePathを= "$ {で https://issues.apache.org/jira/browse/LOG4J2-1487 – elamas