Kim VamPa

[Spring][06] Log4jdbc-log4j2 추가 및 설정방법 본문

공부/스프링

[Spring][06] Log4jdbc-log4j2 추가 및 설정방법

Kim VamPa 2020. 4. 14. 11:33
728x90
반응형

개인 공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다.

git주소(Oracle DB) : https://github.com/sjinjin7/blog_study

git주소(MySQL DB) : https://github.com/sjinjin7/blog_study-MYSQL-base-


목표

  • Log4jdbc-log4j2를 사용하는 이유에 대해 이해합니다.
  • Log4jdbc-log4j2를 사용하기 위한 방법을 직접 실습을 통해 배웁니다.

목차

1. Log4jdbc-log4j2 사용 이유

2. Log4jdbc-log4j2 추가 및 설정 방법

1) 라이브러리 추가

2) 로그 설정 파일 추가

3) JDBC의 연결 정보 설정

 

 

1. Log4jdbc-log4je 사용 이유

 Log4jdbc는 스프링에서 SQL문을 실행한 로그를 효과적이고 직관적으로 볼 수 있도록 해주는 라이브러리입니다. Log4jdbc를 사용한 경우와 사용하지 않은 경우의 console 결과 창은 다음과 같습니다.

(아래의 예는 행과 열이 한 개인 테이블이 생성되어 크게 차이는 못 느끼실 수 있지만 테이블이 많은 정보를 가질수록 가독성에 큰 차이가 있습니다.)

 

- Log4jdbc 사용 전

그림 1-1

- Log4jdbc 사용 후

그림 1-2

 

2. Log4jdbc-log4j2 추가 및 설정 방법

 

 Log4jdbc를 사용하기 위해선 라이브러리 추가, 로그 설정 파일 추가, JDBC 연결 정보 설정 이 필요합니다. 해당 순서대로 하나씩 살펴보겠습니다.

 

1) 라이브러리 추가

 Maven repository 사이트에서 log4jdbc-log4j2를 검색하시면 Maven 코드를 얻을 실수 있습니다. 아래의 코드를 pom.xml 추가해줍니다.

 

<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4 -->
<dependency>
    <groupId>org.bgee.log4jdbc-log4j2</groupId>
    <artifactId>log4jdbc-log4j2-jdbc4</artifactId>
    <version>1.16</version>
</dependency>

 

그림2-1

 

2) 로그 설정 파일 추가

 'src/main/resources' 경로에 log4jdbclog4jdbc.log4j2.properties 파일을 생성한 합니다. 생성 후 해당 파일에 아래의 코드를 추가합니다.

 

log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator

 

* properties생성 상세 설명

 

가. 상단 내비게이션 메뉴 중 [File]클릭 => [New]클릭 => [Other]클릭 합니다.

그림 2-2

나. [General] 선택 => [Untitled Text File]을 선택 후 [Finish] 버튼을 클릭합니다.

그림 2-3

 

다. [Untitled 번호] 창이 뜨실 겁니다 해당 창에 아래의 코드를 추가해줍니다. 추가해준 후 "ctrl+ s"를 눌러줍니다. 

log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator

그림 2-4

 

라. 파일을 저장해 줄 경로를 지정후 File name을 "log4jdbc.log4j2.properties"로 입력 후 [OK] 버튼을 클릭합니다. 

- 자신의 프로젝트 선택 => src => main => resources을 선택하시면 됩니다.

그림 2-7

 

마. 자신이 선택한 경로에 파일이 추가되신 것을 보실 수 있습니다. 

그림 2-6

 

3) JDBC의 연결 정보 설정

 root-context.xml 에서 기존 JDBC 드라이버와 URL 정보를 수정해주어야 합니다. 기존에 있던 JDBC 드라이버, URL 정보는 삭제 혹은 주석처리해줍니다. 

 

	<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
 		<!-- <property name="driverClassName" value="oracle.jdbc.pool.OracleDataSource"></property>
		<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:XE"></property> --> 
		<property name="username" value="c##vam"></property>
		<property name="password" value="1234"></property>
	</bean>	

 

- driverClassName는 값을 "net.sf.log4jdbc.sql.jdbcapi.DriverSpy"로 변경해줍니다.

- jdbcUrl 경우 값을 기존 경로 중간에 log4jdbc 문자열을 추가해주면 됩니다.

- 변경 후의 코드는 다음과 같습니다.(Oracle경우/ MySQL 경우)

 

// Oracle 경우
	<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
 		<!-- <property name="driverClassName" value="oracle.jdbc.pool.OracleDataSource"></property>
		<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:XE"></property> --> 
		
		<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
		<property name="jdbcUrl" value="jdbc:log4jdbc:oracle:thin:@localhost:1521:XE"></property>	
        <!-- Oracle 11 경우>
        <!-- Oracle 19 경우 "jdbc:log4jdbc:oracle:thin:@localhost:1521:orcl" -->
		<property name="username" value="c##vam"></property>
		<property name="password" value="1234"></property>
	</bean>	

 

//MySQL경우
	<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
 		<!--<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
		<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/ksj?serverTimezone=Asia/Seoul"></property> -->
		
		<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
		<property name="jdbcUrl" value="jdbc:log4jdbc:mysql://localhost:3306/ksj?serverTimezone=Asia/Seoul"></property>
		<property name="username" value="root"></property>
		<property name="password" value="1234"></property>
	</bean>

 

그림 2-7

 

Reference

  • "코드로 배우는 스프링 웹 프로젝트"(남가람북스)

Date

  • 2020.04.14 작성

 

 

 

 

728x90
반응형
Comments