[Spring Boot] logback.xml 파일을 이용한 로그 남기기
- 웹 개발/Spring Boot
- 2020. 5. 29. 00:03
logback.xml 파일을 이용하여 로그 남기기
- Mybatis를 이용하여 쿼리를 실행할 때 동적으로 작성한 쿼리의 실제 실행 모습이 보고싶었음.
- log4j를 이용했을 때는 net.sf.log4jdbc.Log4jdbcProxyDataSource 클래스로 DataSource를 만들어야 했으므로 설정을 변경하는 일이 있었음. (application.properties 나 Config 파일을 수정해야하는 경우)
- 그냥 DEBUG와 단순 INFO로 켜고 끄는 기능을 찾고 싶었음.
logback 파일 생성
ver. 1
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
</configuration>
- 처음에는 단순히 로그를 좀 더 자세히 찍고 실행되는 SQL 쿼리를 보고 싶었음.
- root 레벨의 문자열을 DEBUG <-> INFO 로 바꿔가면서 로그가 필요할 때 DEBUG로 보면서 작업을 하려고 하였음.
ver. 2
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>log/%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="fileAppender" />
</root>
</configuration>
- 하지만 로그는 단지 콘솔에 보이기만 하면 안될 것 같았음. 언젠가 나중에 서버에 배포했을 때를 생각하면 문제가 발생했을 때 콘솔만 보고 있을 건 아니기 때문임.
- 뭔가 파일 형태로 보관하고 싶었음. -> 언젠가는 용량때문에 정리해야할 파일이기 때문에 날짜별로 모아보려고 했음.
- 어마어마한 로그가 쌓일 테지만 직접 코딩으로 출력되는 내용만 쌓이기 때문에 에러위주로 담으려고 하였음.
ex) log.error("에러내용"); 이런식으로
결론
- DataSource 바꿔가면서 했었던 지난 날을 아쉬워하며 스프링 부트를 공부하면서 얻게된 많은 편리함들에 감사함을 느꼈음.
- 그걸 직접 개발하셨을 스프링 부트 프로젝트 개발자님들을 존경함.
- 오픈소스가 영원히 지속되길...