우아한 프로그래밍
article thumbnail

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);
    }

이상 저렇게 하면 로그백을 사용 할 수 있다.

profile

우아한 프로그래밍

@자바조아!

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!