-
logback 5분 마다 logfile 생성하기IT/spring 2021. 2. 5. 12:41
안녕하세요
고객사의 요청으로 5분마다 logfile을 남겨야할 상황이 있어서 공유합니다.
logback.xml
<appender name="M_FILE" class="com.....FiveMinAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>log/%d{yyyyMMdd, aux}/${serviceName}.%d{yyyyMMddHHmm}.log</fileNamePattern>
</rollingPolicy>
</appender> <logger name="LOGGER" level="DEBUG"> <appender-ref ref="M_FILE" />
</logger>
@Component
public class FiveMinAppender<E> extends RollingFileAppender<E> {
public static ProjectProperties projectProperties;
private static long nextMillis = -1;
private int rollOverTimeInMinutes = 5;
@Autowired
public void setProjectProperties(ProjectProperties projectProperties) {
this.projectProperties = projectProperties;
rollOverTimeInMinutes = Integer.parseInt(Optional.ofNullable(projectProperties.getProperties().get("fileSplitMinute")).orElse("5"));
init();
}
private void init() {
nextMillis = nextMillis();
}
public long nextMillis() {
Calendar calendar = GregorianCalendar.getInstance(); // creates a new calendar instance
calendar.setTime(new Date());
calendar.set(Calendar.MILLISECOND, 0);
// seconds
calendar.set(Calendar.SECOND, 0);
// minute
calendar.add(Calendar.MINUTE, rollOverTimeInMinutes);
int minute = calendar.get(Calendar.MINUTE);
minute -= calendar.get(Calendar.MINUTE) % rollOverTimeInMinutes;
calendar.set(Calendar.MINUTE, minute);
return calendar.getTimeInMillis();
}
@Override
public void rollover() {
long currentTime = System.currentTimeMillis();
if (nextMillis > 0 && currentTime >= nextMillis) {
nextMillis = nextMillis();
super.rollover();
}
}
@Override
protected void subAppend(E event) {
super.subAppend(event);
}
}감사합니다.
'IT > spring' 카테고리의 다른 글
spring method argumentResolvers (controller 파라미터 맵핑) (0) 2021.02.08 spring 다국어처리 2가지 session, Accept-Language (0) 2021.02.08 spring boot swagger setting (0) 2021.02.05 spring boot oaauth2.0 (링크 정리 공유) (0) 2021.02.04 spring boot 정리 (locale, messageSource, security, jpa, hibernate, Scheduler, config) (0) 2021.02.04