Je me demande s'il y a une demande (´ ・ ω ・ `) Si vous voulez accrocher le minutage lorsqu'un fichier journal est généré ou ouvert dans FileAppender
, la classe qui hérite de FileAppender
et remplace setFile
est changée en log4j.Appender
. Spécifier.
Par exemple, si vous souhaitez changer le fichier journal pour chaque date, plus spécifiquement, sample.log.20180211
pour le journal du 11 février 2018 et sample. Pour le journal du 12 février 2018. Si vous souhaitez enregistrer dans log.20180212
, préparez le fichier original suivant et log4j.properties
.
log4j.properties
log4j.logger.sample=DEBUG, SAMPLE
log4j.appender.SAMPLE=sample.logger.SampleFileAppender
log4j.appender.SAMPLE.File=C:\\logging\\sample.log
log4j.appender.SAMPLE.Append=true
log4j.appender.SAMPLE.layout=org.apache.log4j.PatternLayout
log4j.appender.SAMPLE.layout.ConversionPattern=%d %p %m %n
SampleFileAppender.java
package sample.logger;
import org.apache.log4j.FileAppender;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class SampleFileAppender extends FileAppender {
@Override
synchronized public void setFile(String fileName, boolean append, boolean bufferedIO, int bufferSize) throws IOException {
Path path = Paths.get(fileName);
String baseName = path.getFileName() + "." + DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDate.now());
super.setFile(Paths.get(path.getParent().toString(), baseName).toString(), append, bufferedIO, bufferSize);
}
}
Si vous y réfléchissez bien, DailyRollingFileAppender
suffit à cet effet (´ ・ ω ・ `) Je suis désolé, ce n'est pas un bon échantillon (´ ・ ω ・ `)
Recommended Posts