1. 들어가기 전
- 최근 log4j.xml의 보안 이슈로 logback lib로 변경 (log4j 설정 변경으로 보안 업데이트 가능)
- logback은 log4j의 후속 버전
- log4j와 비교했을 때 속도 향상, 메모리 점유율 하락, 성능 개선 등이 이뤄짐
2. 기존 log4j.xml 파일 및 dependency 삭제
- 충돌 가능성이 존재하니 log4j.xml 삭제
- pom.xml 에서 아래의 코드가 존재하면 삭제하도록 한다
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
<exclusions>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
<scope>runtime</scope>
</dependency>
3. pom.xml 에 dependency 추가
<!-- ************************************************************ -->
<!-- log -->
<!-- ************************************************************ -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<!-- ************************************************************ -->
4. 설정 파일 생성 및 코드 작성
- src > main > resources > logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- 60초 파일 변경 확인 및 재시작 -->
<configuration scan="true" scanPeriod="60 seconds">
<!-- logback 종료 -->
<shutdownHook />
<!-- 참조 : https://logback.qos.ch/documentation.html -->
<!-- ConsoleAppender : 콘솔 로그 기록 -->
<!-- DBAppender : DB 로그 기록 -->
<!-- FileAppender : 파일 로그 기록 -->
<!-- RollingFileAppender : 여러 파일에 로그 기록 -->
<!-- SMTPAppender : 메일 로그 기록 -->
<!-- console에 로그 -->
<appender name="CONSOL" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<!-- 로그 패턴 설정 : 참조 : https://livenow14.tistory.com/64 -->
<Pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%logger] - %replace(%msg){'[\r\n]+', ''} %n</Pattern>
</layout>
</appender>
<!-- logger name : "클래스 위치" -->
<!-- level : "ERROR < WARN < INFO < DEBUG < TRACE" -->
<!-- appender-ref : "위의 appender 설정 name" -->
<!-- additivity : "false" //로그 중복 생성 방지 -->
<logger name="com.hhkim.homepage" additivity="false">
<level value="DEBUG" />
<appender-ref ref="CONSOL" />
</logger>
<logger name="org.springframework">
<level value="DEBUG" />
<appender-ref ref="CONSOL" />
</logger>
<root level="DEBUG">
<appender-ref ref="CONSOL" />
</root>
</configuration>
5. 결과 확인
'Server > Spring(구버전)' 카테고리의 다른 글
12. camelCase 설정 (0) | 2022.04.01 |
---|---|
11. Mapper.xml (Query) 변경 후 자동인식 (0) | 2022.04.01 |
9. Controller - Service - Query 연동 및 테스트 (0) | 2022.03.31 |
8. Spring-myBatis-oracle 연동 및 연결 확인 테스트 (0) | 2022.03.30 |
7. Oracle DB (JDBC) Web Server 연동 (JUnit Test) (0) | 2022.03.29 |