I am migrating log4j to log4j2 2.17.X version. Logs file rollover when size is x MB. file rollover format is -%d{yyyyMMdd_HHmmss_SSS}.
I am using below code:
RollingFileAppender.Builder rollbuilder = RollingFileAppender.newBuilder();
rollbuilder.setConfiguration(config);
rollbuilder.withFileName(fileName)
rollbuilder.withFilePattern(fileName +"-%d{yyyyMMdd_HHmmss_SSS}" + ".log");
rollbuilder.withAppend(true);
rollbuilder.setName(directory);
rollbuilder.setIgnoreExceptions(false);
rollbuilder.setLayout(patternLayout);
rollbuilder.withPolicy(createTriggeringPolicy(prefix));
RollingFileAppender rollingFileAppender = rollbuilder.build();
rollingFileAppender.start();
I have requirement that base file having "fileNameyyyyMMdd_HHmmss_SSS.log" format and when rollover then current file have recent timestamp.
Currently base file never rollover it create new file with recent timestamp. I need recent file as base file with format "fileNameyyyyMMdd_HHmmss_SSS.log".
rollbuilder.withFileName(fileName) is responsible to create the base file name. As X MB file is reached it rollover and transfer the content of base file into new file having file name define in rollbuilder.withFilePattern(fileName +"-%d{yyyyMMdd_HHmmss_SSS}" + ".log").
When condition is base file never rollover it create new file with recent timestamp.
To cater above problem we have to remove rollbuilder.withFileName(fileName). If we remove property in that case by default it will create base file with the pattern given inside the .withFilePattern() property. So, the answer