JAVA

log4j2 ์„ค์ •(log4jdbc-log4j2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ)

haribogumi 2025. 2. 14. 13:57
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ ์ง€๋‚œ ํฌ์ŠคํŒ…์—์„œ ํ‘œ์ค€ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด๋ถ€์—…๋ฌด ์‹œ์Šคํ…œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์‹คํ–‰์‹œ ๋กœ๊ทธ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์‹คํ–‰๋˜๋Š” SQL์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ถ€๋ถ„์ด ? ๋กœ ํ‘œ์ถœ๋˜์–ด ์•Œ์•„๋ณด๊ธฐ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค.

SQL๋กœ๊ทธ๋ฅผ ์กฐ๊ธˆ ๋” ๋ณด๊ธฐ์ข‹๊ฒŒ ํ‘œ์ถœํ•˜๊ธฐ ์œ„ํ•ด log4jdbc-log4j2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ log4j2 ์„ค์ •์„ ๋ณ€๊ฒฝํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๐Ÿ˜€

 

์ฐธ๊ณ ) ํ‘œ์ค€ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด๋ถ€์—…๋ฌด ์‹œ์Šคํ…œ

2025.02.13 - [JAVA] - ํ‘œ์ค€ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด๋ถ€์—…๋ฌด ์‹œ์Šคํ…œ ํ…œํ”Œ๋ฆฟ ํ”„๋กœ์ ํŠธ ์‹คํ–‰

 

ํ‘œ์ค€ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด๋ถ€์—…๋ฌด ์‹œ์Šคํ…œ ํ…œํ”Œ๋ฆฟ ํ”„๋กœ์ ํŠธ ์‹คํ–‰

๐Ÿ“Œ ํ‘œ์ค€ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ณตํ†ต์ปดํฌ๋„ŒํŠธ์˜ ๊ธฐ๋Šฅ๋“ค ์ค‘ ์ผ๋ถ€๋ฅผ ์‚ฌ์šฉํ•œ ๋‚ด๋ถ€์—…๋ฌด ์‹œ์Šคํ…œ ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๐Ÿ˜€ โœ” ๋ฉ”์ธ ํŽ˜์ด์ง€, ์—…๋ฌด์‚ฌ์šฉ์ž ๊ด€๋ฆฌ, ๊ณต์ง€์‚ฌํ•ญ

haribogumi.tistory.com

 

 

log4j2 ๊ด€๋ จ ์„ค์ •

  • pom.xml ์ถ”๊ฐ€
 
<dependency>
  <groupId>org.bgee.log4jdbc-log4j2</groupId>
  <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
  <version>1.16</version>
</dependency>

 

  • log4jdbc.log4j2.properties ์ƒ์„ฑ

log4j2.xmlํŒŒ์ผ๊ณผ ๊ฐ™์€ ์œ„์น˜์— properties ํŒŒ์ผ ์ƒ์„ฑ

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

 

  • globals.properties ์ˆ˜์ •

DriverClassName ๋ณ€๊ฒฝ

Url์— jdbc: ๋’ค์— log4jdbc ์ถ”๊ฐ€

DriverClassName = net.sf.log4jdbc.sql.jdbcapi.DriverSpy
Url = jdbc:log4jdbc:postgresql://127.0.0.1:5432/egovbustmp

 

  • log4j2.xml ์ˆ˜์ •

ํ•„์š”์— ๋”ฐ๋ผ log ๋ ˆ๋ฒจ ์ˆ˜์ •

<?xml version="1.0" encoding="UTF-8"?>
<!-- FATAL > ERROR > WARN > INFO > DEBUG > TRACE -->
<!DOCTYPE xml>
<Configuration>
	<Appenders>
		<Console name="console" target="SYSTEM_OUT">
			<PatternLayout pattern="%d %5p [%c] %m%n" />
		</Console>
	</Appenders>
	<Loggers>
		<Logger name="java.sql" level="INFO" additivity="false">
			<AppenderRef ref="console" />
		</Logger>
		<Logger name="egovframework" level="DEBUG" additivity="false">
			<AppenderRef ref="console" />
		</Logger>
		<Logger name="org.egovframe" level="DEBUG" additivity="false">
			<AppenderRef ref="console" />
		</Logger>
		<Logger name="org.springframework" level="INFO" additivity="false">
			<AppenderRef ref="console" />
		</Logger>
		  <!-- log SQL with timing information, post execution -->
		<Logger name="jdbc.connection" level="WARN" additivity="false">
			<AppenderRef ref="console"/> 
		</Logger>
		<Logger name="jdbc.sqltiming" level="ERROR" additivity="false">
			<AppenderRef ref="console" />
		</Logger>
		<Logger name="jdbc.sqlonly" level="DEBUG" additivity="false"> 
			<AppenderRef ref="console"/> 
		</Logger>
		<Logger name="jdbc.resultset" level="WARN" additivity="false"> 
			<AppenderRef ref="console"/> 
		</Logger>
		<Logger name="jdbc.resultsettable" level="INFO" additivity="false"> 
			<AppenderRef ref="console"/> 
		</Logger>
		<Logger name="jdbc.audit" level="WARN" additivity="false"> 
			<AppenderRef ref="console"/> 
		</Logger>
		<Root level="INFO">
			<AppenderRef ref="console" />
		</Root>
	</Loggers>
</Configuration>

 

Logger name ์„ค๋ช…
jdbc.connection Connection Pool ์„ค์ • ๊ด€๋ จ ๋กœ๊ทธ
jdbc.sqltiming SQL๋ฌธ ์‹คํ–‰์‹œ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ •๋ณด๋ฅผ ํ‘œ์ถœ
jdbc.sqlonly SQL ๋ฌธ์žฅ๋งŒ ๋กœ๊ทธ, argument ๊ฐ’์œผ๋กœ ๋Œ€์ฒด๋œ SQL๋ฌธ์ด ํ‘œ์ถœ
jdbc.resultset SQL ์ฟผ๋ฆฌ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์ถœ
jdbc.resultsettable SQL ์ฟผ๋ฆฌ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ํ‘œ์ถœ
jdbc.audit resultset์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณ€๊ฒฝ ๋กœ๊ทธ

 

์‹คํ–‰ํ›„ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•ด ๋ณด๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ํ‘œ์ถœ๋˜๊ณ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

 

 

 

 

 

๐Ÿงก๐Ÿ’›๐Ÿ’š๊ณต๊ฐ๊ณผ ๋Œ“๊ธ€์€ ํฌ์ŠคํŒ…์— ํฐ ํž˜์ด๋ฉ๋‹ˆ๋‹ค๐Ÿ’š๐Ÿ’™๐Ÿ’œ

๋ฐ˜์‘ํ˜•