728x90
logback-spring.xml 적용하기
resource에
logback-spring.xml과 log4jdbc.log4j2.properties만들어줌
logback-spring.xml에
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
<!-- Appenders -->
<!-- 전달받은 로그를 어디에 출력할지 결정. 콘솔 출력, 파일 저장, 데이터베이스 저장 등 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <!-- encoder : appender에 포함되어 출력할 로그의 형식을 지정 -->
<Pattern>%d %5p [%c] %m%n</Pattern>
</encoder>
</appender>
<appender name="console-infolog" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<Pattern>%d %5p %m%n</Pattern>
</encoder>
</appender>
<!-- Logger -->
<!-- 로그를 출력하는 요소로, level 속성을 통해 출력할 로그 레벨을 조절하여 appender에 전달. 첫 번째 logger에서 com.example.dandy.history는 src/main/java/ 디렉터리 안의 자바 패키지 경로를 의미함. -->
<logger name="com.example.dandy.history" level="DEBUG" appender-ref="console" />
<logger name="jdbc.sqlonly" level="DEBUG" appender-ref="console-infolog" />
<logger name="jdbc.resultsettable" level="DEBUG" appender-ref="console-infolog" />
<!-- Root Logger -->
<root level="off">
<appender-ref ref="console" />
</root>
</configuration>
추가
# 설명
xml에 선언한 내용에 대해 간략히 알아보도록 하겠습니다.
태그 | 설명 |
appender | 전달받은 로그를 어디에 출력할지 결정합니다. (콘솔 출력, 파일 저장, 데이터베이스 저장 등) |
encoder | appender에 포함되어 출력할 로그의 형식을 지정합니다. |
logger | 로그를 출력하는 요소로, level 속성을 통해 출력할 로그의 레벨을 조절하여 appender에 전달합니다. 첫 번째 logger에서 com.board는 src/main/java 디렉터리 안의 자바 패키지 경로를 의미합니다. |
이번에는 로그의 레벨에 대해 알아보도록 하겠습니다.
레벨 | 설명 |
fatal | 아주 심각한 에러가 발생한 상태를 나타냅니다. |
error | 요청을 처리하던 중 문제가 발생한 상태를 나타냅니다. |
warn | 프로그램 실행에는 문제가 없지만, 나중에 시스템 에러의 원인이 될 수 있는 경고성 메시지를 나타냅니다. |
info | 어떠한 상태 변경과 같은 정보성 메시지를 나타냅니다. |
debug | 개발 시에 디버그 용도로 사용하는 메시지입니다. |
trace | 디버그 레벨이 너무 광범위한 것을 해결하기 위해 좀 더 상세한 이벤트를 나타냅니다. |
마지막으로 로그의 타입에 대해 알아보도록 하겠습니다.
타입 | 설명 |
sqlonly | SQL을 로그로 남기며, Prepared Statement와 관련된 파라미터는 자동으로 변경되어 SQL을 출력합니다. |
sqltiming | SQL과 SQL 실행 시간(milliseconds 단위)을 출력합니다. |
audit | ResultSet을 제외한 모든 JDBC 호출 정보를 출력합니다. JDBC 관련 문제를 추적하는 경우를 제외하고는 사용이 권장되지 않습니다. |
resultset | ResultSet을 포함한 모든 JDBC 호출 정보를 출력합니다. |
resultsettable | SQL 조회 결과를 테이블 형태로 출력합니다. |
connection | Connection의 연결과 종료에 관련된 로그를 출력합니다. 커넥션 누수 문제 해결에 도움이 됩니다. |
log4jdbc.log4j2.properties 안에
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0
추가
build.gradle에
implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' /* Log4JDBC */
추가
application.yml에
spring:
datasource:
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:jdbc:log4jdbc:mariadb://127.0.0.1:3306/spring?characterEncoding=UTF-8
username: test
password:
적용 후
결과가 쿼리로 다 보이게 해줘서 개발할때 좋음.
출처
'개발 > JPA' 카테고리의 다른 글
JPA 중요한 것 조인 칼럼을 쓸려면 (0) | 2022.08.10 |
---|---|
일단 확인 해야겠지만. 값 담을 때 쓰는 법 (0) | 2022.08.01 |
(1) error-api - 전역 예외 처리(Global Exception Handling) & 로그백(logback-spring.xml) 적용하기 초기 설정 할 때 중요 작업 (0) | 2022.07.29 |
Jpa Repository TLI 조회, 가져오기, Entity build & add.Params (0) | 2022.07.29 |
JunitTest assertThat 사용법과 유형이 string이 아닌 char일때 사용법 (0) | 2022.07.29 |