해당 라이브러리는 spring-web에 들어있기때문에 따로 의존성을 설정해 둘 필요는 없습니다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOGS" value="./logs" />
<appender name="Console"
class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}): %msg%n%throwable
</Pattern>
</layout>
</appender>
<appender name="RollingFile"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 에러로그를 설정하고 로그의 레벨이 맞으면 onMatch, 아니라면 onMismatch -->
<level>error</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>${LOGS}/spring-boot-logger.log</file>
<encoder
class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
</encoder>
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily and when the file reaches 10 MegaBytes -->
<fileNamePattern>${LOGS}/archived/spring-boot-logger-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<!-- info 레벨부터 콘솔에 출력 -->
<root level="info">
<appender-ref ref="RollingFile" />
<appender-ref ref="Console" />
</root>
<!-- <root level="error">-->
<!-- <appender-ref ref="RollingFile" />-->
<!-- <appender-ref ref="Console" />-->
<!-- </root>-->
<logger name="com.baeldung" level="error" additivity="false">
<appender-ref ref="RollingFile" />
<appender-ref ref="Console" />
</logger>
</configuration>
property : xml 에서 사용할 변수값 선언
appender : 기능단위 자바로치면 method 격이라고 생각하면됩니다.
위 설정파일에서는 Console이라는 appender에서는 기본적으로 스프링부트를 실행하면 나오는 로그들을 명시해 줬습니다. 그리고 잘 보시면 %black(%d{ISO8601}과 같이 색도 명시해줘서 좀 이쁘게 꾸며봤습니다.
그리고 RollingFile appender에서 로그를 파일로 저장하는 설정을 해 줬는데요 이때 모든 로그를 저장하면 정작 필요한 로그들을 못볼수도 있기때문에 저는 filter 를걸어서 error가 아니면 파일로 남기지 않겠다는 설정을 더 해줬습니다. 이렇게 한후 서버를 실행시키고 일부러 error로그를 남겨 보면 info같이 erorr 레벨이 다른 로그들은 파일에 기록돼 있지 않다가 error 로그만 가로체서 로깅을 할 수 있습니다.