-
스프링 부트, Log4jdbc 설정Spring Boot 2019. 6. 8. 00:59
1. pom.xml 파일에 아래와 같이 추가
<!-- log4jdbc --> <dependency> <groupId>org.bgee.log4jdbc-log4j2</groupId> <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId> <version>1.16</version> </dependency>
2. application.properties 설정
spring datasource 설정을 해 둔 부분을 아래와 같이 수정
==오라클일 경우==spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:oracle:thin:@localhost:1521:XE
spring.datasource.username=aaa
spring.datasource.password=12345
3. log4jdbc.log4j2.properties 생성resources 폴더에 log4jdbc.log4j2.properties 생성
아래와 같이 설정
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0maxlinelength는 sql문을 최대 몇 라인까지 출력
0으로 하면 제한 없이 실행된 그대로 출력기본적으로 log4jdbc가 제공하는 모든 로깅 옵션들이 다 켜진 상태로 로그를 출력한다.
아래와 같이 설정하여 로그레벨 변경4. resources 폴더에 logback.xml을 아래와 같이 생성
<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyyMMdd HH:mm:ss.SSS} [%thread] %-3level %logger{5} - %msg %n</pattern> </encoder> </appender> <logger name="jdbc" level="OFF"/> <logger name="jdbc.sqlonly" level="OFF"/> <logger name="jdbc.sqltiming" level="DEBUG"/> <logger name="jdbc.audit" level="OFF"/> <logger name="jdbc.resultset" level="OFF"/> <logger name="jdbc.resultsettable" level="DEBUG"/> <logger name="jdbc.connection" level="OFF"/> <root level="INFO"> <appender-ref ref="STDOUT" /> </root> </configuration>
[설명]
- jdbc.sqlonly : SQL문만 로그, PreparedStatement일 경우 관련된 argument 값으로 대체된 SQL문
- jdbc.sqltiming : SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds)
- jdbc.audit : ResultSet 제외한 모든 JDBC 호출 정보. 많은 양의 로그가 생성
- jdbc.resultset : ResultSet 포함 모든 JDBC 호출 정보 로그, 방대한 양의 로그 생성
- jdbc.resultsettable : SQL 결과 조회된 데이터의 table을 로그이상.
'Spring Boot' 카테고리의 다른 글
CORS설정 (0) 2020.07.19 Spring으로 SOAP 기반 웹서비스 구현 (0) 2019.10.18 스프링 부트 배치, RestAPI 데이터 읽기 (0) 2019.06.07 스프링 부트, 웹 서비스 (0) 2019.06.05 스프링 부트, 스프링 시큐리티, Spring Boot, Spring Security (0) 2019.05.22