스프링 프로젝트 생성시 디폴트로 출력되는 로그로는 개발할 때 참고하기에 한계가 있다.
더 자세한 쿼리로그를 출력하기위한 세팅을 해야한다.
pom.xml 설정
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
root-context 설정
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy" />
<property name="url" value="jdbc:log4jdbc:mysql://127.0.0.1:3306/DB스키마이름?useSSL=false&serverTimezone=UTC&characterEncoding=utf8" />
<property name="username" value="DB유저이름"></property>
<property name="password" value="비밀번호"></property>
</bean>
원래의 설정에서 줄그은 부분만 위의 코드로 바꿔주었다.
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver">
<property name="url" value="jdbc:mysql://127.0.0.1:3306/DB스키마이름?useSSL=false&serverTimezone=UTC&characterEncoding=utf8">
log4jdbc.log4j2.properties 생성
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
src/main/resources아래에 log4jdbc.log4j2.properties 파일을 생성하여 위를 복사하여 붙여넣기
log4j.xml 수정
<!-- SQL Logger -->
<logger name="jdbc.sqlonly" additivity="false">
<level value="info"/>
<appender-ref ref="console"/>
</logger>
<logger name="jdbc.resultsettable" additivity="false">
<level value="info"/>
<appender-ref ref="console"/>
</logger>
구글링해보면 추가할게 이것저것 더 있든데 사실상 sqlonly랑 resultsettable만 추가하면 넘치도록 쾌적한 코딩이 가능하다.
-참고로 나는 log4.xml에 jdbc.sqlonly,jdbc.resultsettable 를 모르고 두번씩 써서 처음에 오류가 났다...
저번에 로그찍어 볼려다가 실패하고 다음에 쓰겠지 하고 안지웠었는데 멍청하게 그 아래 똑같은걸 또 썼다.
log4j:ERROR Attempted to append to closed appender named [console].
라는 에러가 뜨면 중복된 logger name이 있나 확인해 보시길...
Console
잘찍힘 ㅎ 훗날에 내가 이글 보고 다시 설정할 것이다...
분명 까먹을 것이 뻔하니까..
'공부하는 > spring' 카테고리의 다른 글
리스트형식 파라미터 받기 (form, ajax) (0) | 2023.07.13 |
---|---|
Spring+SockJS+STOMP 웹 소켓 구현/채팅 만들기 (0) | 2021.02.02 |
댓글