728x90
log4j 설정하기
pom.xml설정
1. 라이브러리 설치
<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1 -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version>
</dependency>
src/main/resources 설정
2. properties 및 log.xml 업로드
log-back.xml 설정
더보기
1. 변수 및 로그패턴설정
<?xml version="1.0" encoding="UTF-8"?>
<!--
jdbc.sqlonly : Logs only SQL
jdbc.sqltiming : Logs the SQL, post-execution, including timing execution statistics
jdbc.audit : Logs ALL JDBC calls except for ResultSets
jdbc.resultset : all calls to ResultSet objects are logged
jdbc.connection : Logs connection open and close events
-->
<configuration>
<!-- 변수 지정 -->
<property name="LOG_DIR" value="src/main/resources/logs" />
<property name="LOG_PATH_NAME" value="${LOG_DIR}/application.log" />
<!-- ConsoleAppender -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!--Query ConsoleAppender -->
<appender name="QSTDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} %n %msg%n</pattern>
</encoder>
</appender>
</configuration>
2. 로깅 설정
<?xml version="1.0" encoding="UTF-8"?>
<!--
jdbc.sqlonly : Logs only SQL
jdbc.sqltiming : Logs the SQL, post-execution, including timing execution statistics
jdbc.audit : Logs ALL JDBC calls except for ResultSets
jdbc.resultset : all calls to ResultSet objects are logged
jdbc.connection : Logs connection open and close events
-->
<configuration>
<!-- 프로젝트 패키지 안 클래스에 설정된 로그 출력 -->
<logger name="ksmart42.mybatis" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<!-- log4jdbc 옵션 설정 -->
<logger name="jdbc" level="OFF" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<!-- 커넥션 open close 이벤트를 로그 -->
<logger name="jdbc.connection" level="OFF" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<!-- SQL문만을 로그로 남기며, PreparedStatement일 경우 관련된 argument 값으로 대체된 SQL문 출력 -->
<logger name="jdbc.sqlonly" level="OFF" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<!-- SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds)를 포함하여 출력. -->
<logger name="jdbc.sqltiming" level="INFO" additivity="false">
<appender-ref ref="QSTDOUT" />
</logger>
<!-- ResultSet을 제외한 모든 JDBC 호출 정보를 로그 출력, 많은 양의 로그가 생성되므로 특별히 JDBC 문제를 추적해야 할 필요가 있는 경우를 제외하고는 권장 안함. -->
<logger name="jdbc.audit" level="OFF" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<!-- ResultSet을 포함한 모든 JDBC 호출 정보를 로그로 남기므로 매우 방대한 양의 로그가 생성된다. -->
<logger name="jdbc.resultset" level="OFF" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<!-- SQL 결과 조회된 데이터의 table로 표현하여 로그 출력 -->
<logger name="jdbc.resultsettable" level="OFF" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<!-- 필수 -->
<root level="ERROR">
<appender-ref ref="STDOUT" />
</root>
</configuration>
3. application.properties 설정
#db 연결정보 log4jdbc datasource 설정
spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:mysql://localhost:3306/ksmart42db?serverTimezone=UTC&characterEncoding=UTF8
spring.datasource.username=ksmart42id
spring.datasource.password=ksmart42pw
# log 설정파일 위치
logging.config=classpath:logback-spring.xml
# spring banner 파일 경로 설정
spring.banner.location=classpath:templates/banner.txt
[preperences] 설정
4. Content Types > encoding 설정
*.properties 추가
5. Controller에서 log 호출하기
클래스 내 log 자동완성으로
필드 설정 후 메서드 안에
원하는 레벨의 메서드 호출.
후
빌드 해보면
log4j LEVEL
로그 레벨 | 설 명 |
fatal | 아주 심각한 에러가 발생한 상태 |
error | 요청을 처리하는 중 문제가 발생한 상태 |
warn | 처리 가능한 문제, 향후 에러의 원인이 될 수 있는 경고 메세지 |
info | 로그인, 상태 변경과 같은 정보 메세지 |
debug | 개발 시 디버그 용도로 사용한 메시지 |
trace | 신규 추가된 레벨로 디버그 레벨이 넘 광범위한 것을 해결하기 위해서 좀 더 상세한 상태를 나타냄 |
log4j LAYOUT
형식 | 설 명 |
%P | debug, info, warn, error, fatal 등 priority 출력 |
%m | 로그 내용 출력 |
%d | 발생 시간 출력 |
%t | 발생 쓰레드의 이름 출력 |
%n | 개행 문자 출력 |
%c | 패키지 출력 / {숫자} 를 이용하여 단계별 출력, ex) %x{5} |
%C | 클래스 명 출력 / {숫자} 를 이용하여 단계별 출력, ex) %x{5} |
%L | 로깅이 발생한 caller 의 라인 수 출력 |
'Framework > SpringBoot' 카테고리의 다른 글
(Springboot) Thymeleaf 객체 바인딩, 유틸리티 객체 (0) | 2022.02.22 |
---|---|
(Springboot) Thymeleaf 이클립스 자동완성 플러그인 설치하기 (0) | 2022.02.22 |
(Springboot) 🅲 Mybatis 회원 가입 (0) | 2022.02.22 |
(Springboot) 🆁 Mybatis 회원 목록 조회 (0) | 2022.02.22 |
(Springboot) hello spring boot 찍기 (0) | 2022.02.08 |