로거 롤링 정책 변경 time-> size(500MB) and time

This commit is contained in:
cho
2026-03-05 11:53:04 +09:00
parent 8c886f92fb
commit c22786b729
2 changed files with 23 additions and 6 deletions
@@ -47,6 +47,7 @@ public interface LogKeys
public static final String DATE_PATTERN ="date.pattern"; public static final String DATE_PATTERN ="date.pattern";
public static final String APPEND ="append"; public static final String APPEND ="append";
public static final String MAX_BACKUP_INDEX ="max.backup.index"; public static final String MAX_BACKUP_INDEX ="max.backup.index";
public static final String MAX_FILE_SIZE ="max.file.size";
public static final String ENCODING ="encoding"; public static final String ENCODING ="encoding";
public static final String COMPRESS_EXT ="compress.ext"; public static final String COMPRESS_EXT ="compress.ext";
@@ -27,8 +27,9 @@ import ch.qos.logback.core.ConsoleAppender;
import ch.qos.logback.core.Context; import ch.qos.logback.core.Context;
import ch.qos.logback.core.FileAppender; import ch.qos.logback.core.FileAppender;
import ch.qos.logback.core.rolling.RollingFileAppender; import ch.qos.logback.core.rolling.RollingFileAppender;
import ch.qos.logback.core.rolling.TimeBasedRollingPolicy; import ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy;
import ch.qos.logback.core.sift.AppenderFactory; import ch.qos.logback.core.sift.AppenderFactory;
import ch.qos.logback.core.util.FileSize;
import co.elastic.logging.logback.EcsEncoder; import co.elastic.logging.logback.EcsEncoder;
/** /**
@@ -846,9 +847,16 @@ public class Logger implements LogKeys {
rollingFileAppender.setName("FILE-" + discriminatingValue); rollingFileAppender.setName("FILE-" + discriminatingValue);
rollingFileAppender.setFile(appenderLogDirectory + localServer + File.separator + appenderLogDirectorySub + File.separator + discriminatingValue + ".log"); rollingFileAppender.setFile(appenderLogDirectory + localServer + File.separator + appenderLogDirectorySub + File.separator + discriminatingValue + ".log");
TimeBasedRollingPolicy<ILoggingEvent> rollingPolicy = new TimeBasedRollingPolicy<>(); String sMaxFileSize = pmanager.getProperty(APPENDER_SIFT, MAX_FILE_SIZE, "500MB");
SizeAndTimeBasedRollingPolicy<ILoggingEvent> rollingPolicy = new SizeAndTimeBasedRollingPolicy<>();
rollingPolicy.setContext(context); rollingPolicy.setContext(context);
rollingPolicy.setFileNamePattern(appenderLogDirectory + localServer + File.separator + appenderLogDirectorySub + File.separator + discriminatingValue + datePattern + ".log"); rollingPolicy.setFileNamePattern(appenderLogDirectory + localServer + File.separator + appenderLogDirectorySub + File.separator + discriminatingValue + datePattern + ".%i.log");
if (StringUtils.isNotBlank(sMaxFileSize)) {
rollingPolicy.setMaxFileSize(FileSize.valueOf(sMaxFileSize));
} else {
rollingPolicy.setMaxFileSize(FileSize.valueOf("500MB"));
}
rollingPolicy.setParent(rollingFileAppender); rollingPolicy.setParent(rollingFileAppender);
rollingPolicy.setMaxHistory(maxBackupIndex); rollingPolicy.setMaxHistory(maxBackupIndex);
rollingPolicy.start(); rollingPolicy.start();
@@ -1044,17 +1052,25 @@ public class Logger implements LogKeys {
appender = new RollingFileAppender<ILoggingEvent>(); appender = new RollingFileAppender<ILoggingEvent>();
String localServer = EAIServerManager.getInstance().getLocalServerName(); String localServer = EAIServerManager.getInstance().getLocalServerName();
TimeBasedRollingPolicy<ILoggingEvent> rollingPolicy = new TimeBasedRollingPolicy<ILoggingEvent>(); String sMaxFileSize = pmanager.getProperty(appenderName, MAX_FILE_SIZE, "500MB");
SizeAndTimeBasedRollingPolicy<ILoggingEvent> rollingPolicy = new SizeAndTimeBasedRollingPolicy<ILoggingEvent>();
if (StringUtils.isNotBlank(compressExt)){ if (StringUtils.isNotBlank(compressExt)){
if (compressExt.startsWith(".")) { if (compressExt.startsWith(".")) {
compressExt = compressExt.substring(1); compressExt = compressExt.substring(1);
} }
rollingPolicy.setFileNamePattern( logDirectory + localServer + File.separator + logFile + datePattern + "." + compressExt); rollingPolicy.setFileNamePattern( logDirectory + localServer + File.separator + logFile + datePattern + ".%i." + compressExt);
}else{ }else{
rollingPolicy.setFileNamePattern( logDirectory + localServer + File.separator + logFile + datePattern); rollingPolicy.setFileNamePattern( logDirectory + localServer + File.separator + logFile + datePattern + ".%i.");
} }
rollingPolicy.setContext( (LoggerContext) LoggerFactory.getILoggerFactory() ); rollingPolicy.setContext( (LoggerContext) LoggerFactory.getILoggerFactory() );
rollingPolicy.setParent(appender); rollingPolicy.setParent(appender);
if (StringUtils.isNotBlank(sMaxFileSize)) {
rollingPolicy.setMaxFileSize(FileSize.valueOf(sMaxFileSize));
} else {
rollingPolicy.setMaxFileSize(FileSize.valueOf("500MB")); // 기본값
}
rollingPolicy.setMaxHistory(maxBackupIndex); rollingPolicy.setMaxHistory(maxBackupIndex);
rollingPolicy.start(); rollingPolicy.start();