프로그래밍/Spring
[SPRING/환경구축] 스프링에서 LOGBACK을 설정하는 방법을 알아보자!
자바조아!
2018. 7. 21. 17:20
1. MAVEN 설정
1. 아래의 디펜던시를 pom.xml 파일에 추가한다.
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
2. 로그백의 위치
설정파일을 아래와 같은 경로(Class Folder Root)에 똑같은 logback-spring.xml이라는 이름으로 저장한다.
3. 로그백의 내용
로그백의 내용은 아래와 같다.
여기서는 상세한 내용은 설명하지 않는다. 기본적으로 로그백을 설정하는 방법에 대해서만 이야기한다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<include resource="org/springframework/boot/logging/logback/basic.xml"/>
<!-- 변수 지정 -->
<property name="LOG_DIR" value="/logs" />
<property name="LOG_PATH_NAME" value="${LOG_DIR}/data.log" />
<!-- FILE Appender -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH_NAME}</file>
<!-- 일자별로 로그파일 적용하기 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH_NAME}.%d{yyyyMMdd}</fileNamePattern>
<maxHistory>60</maxHistory> <!-- 일자별 백업파일의 보관기간 -->
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%-5p] [%F]%M\(%L\) : %m%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%-5p] [%F]%M\(%L\) : %m%n</pattern>
</layout>
</appender>
<!-- TRACE > DEBUG > INFO > WARN > ERROR, 대소문자 구분 안함 -->
<!-- profile 을 읽어서 appender 을 설정할수 있다.(phase별 파일을 안만들어도 되는 좋은 기능) -->
<springProfile name="local">
<root level="DEBUG">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</springProfile>
<springProfile name="real">
<root level="INFO">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</springProfile>
</configuration>
4. 로그백의 사용
1. lombok을 사용해서 @Slf4j 어노테이션을 붙인 후 사용 할 수도 잇고
2. 아니면 logger를 멤버변수로 선언하여 사용하는 방법이 있다
방법은 알아서 취사 선택하여 사용하기 바란다.
@Service
@Slf4j
public class UserServiceImpl implements UserService {
@Autowired
UserMapper userMapper;
private static final Logger logger = LoggerFactory.getLogger(UserServiceImpl.class);
@Autowired
UserRepository userRepository;
@Override
public UserEntity searchUser() {
return userMapper.selectUser();
}
@Override
public void deleteUser(Map<String, Object> param) throws Exception {
log.debug("deleteUser");
UserEntity entity = new UserEntity();
BeanUtils.populate(entity,param);
userRepository.delete( entity);
}
이상 저렇게 하면 로그백을 사용 할 수 있다.