본문 바로가기
개발/etc

[Log] 로그 파일 분리하기 - Log4j, Logback

by zuzuu 2021. 12. 22.
반응형

프로젝트 진행 도중 특정 서비스만 로그 파일을 분리해서 저장해야될 일이 있어 아래와 같이 수정하였다.

  • 수정 전 
org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(BasicService.class.getName());

logger.info("로그 내용");

 

  • 수정 후
org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(BasicService.class.getName());
org.slf4j.Logger regLogger = org.slf4j.LoggerFactory.getLogger("RegLogger");

logger.info("로그 내용");
regLogger.info("로그 내용");

분리해야하는 특정 서비스만 추가된 regLogger로 변경하였다. : logger.info(""); -> regLogger.info("");

 

그리고 기존 log 설정 파일에 appender를 추가해 주면 된다!

<appender name="REGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
	<file>logs/reg.log</file>
	<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
		<!-- daily rollover -->
		<fileNamePattern>logs/reg.%d{yyyy-MM-dd}.log</fileNamePattern>
		<!-- keep 2 days' worth of history -->
		<maxHistory>2</maxHistory> 
	</rollingPolicy>
	<encoder>
		<pattern>[%d] [%thread] %-5level %C{100} - %msg%n </pattern>
	</encoder>
</appender>
    
    
<logger name="RegLogger" level="DEBUG">
	<appender-ref ref="REGFILE" />
</logger>

※ logger 태그의 name은 org.slf4j.Logger regLogger = org.slf4j.LoggerFactory.getLogger("RegLogger"); 와 맞춰주어야 한다!

이렇게 하면 regLogger.info("로그 내용"); 로 작성된 로그만 reg.log파일에 기록된다.

728x90
반응형

댓글