2022 01 08 - oneso123456789/2022 GitHub Wiki

8์ผ ์ €๋… 6์‹œ์ฏค

jdbc-log4j2 ์„ค์ •(log4j๋Š” ํ˜„์žฌ ๋ณด์•ˆ ์ด์Šˆ๋กœ ์œ„ํ—˜ํ•˜์ง€๋งŒ ์‹ค์Šต์„ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•จ)

MyBatis๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ PreparedStatement๋ฅผ ์ด์šฉํ•ด์„œ SQL์ฒ˜๋ฆฌํ•จ. ๋”ฐ๋ผ์„œ SQL์— ์ „๋‹ฌ๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” JDBC์™€ ๊ฐ™์ด '?'๋กœ ์น˜ํ™˜๋˜์–ด์„œ ์ฒ˜๋ฆฌ๋จ. ๋ณต์žกํ•œ SQL์˜ ๊ฒฝ์šฐ '?'๋กœ ๋‚˜์˜ค๋Š” ๊ฐ’์ด ์ œ๋Œ€๋กœ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€์•Š๊ณ , ์‹คํ–‰๋œ SQL์˜ ๋‚ด์šฉ์„ ์ •ํ™•ํžˆ ํ™•์ธํ•˜๊ธฐ ์–ด๋ ค์›€. ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ SQL์„ ๋ณ€ํ™˜ํ•ด์„œ PaeparedStatement์— ์‚ฌ์šฉ๋œ '?'๊ฐ€ ์–ด๋–ค ๊ฐ’์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด log4jdbc-log4j2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•จ

pom.xml์— 1.16๋ฒ„์ „์˜ log4jdbc-log4j๋ฅผ ์ถ”๊ฐ€ํ•ด์คŒ

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•œ ํ›„์—๋Š”

1.๋กœ๊ทธ ์„ค์ • ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ž‘์—…
src/main/resources๋ฐ‘์— log4jdbc.log4j.properties์ž‘์„ฑ
์ž‘์„ฑ์ค‘ log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator๋ฅผ
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.slf4j.Slf4jSpyLogDelegator๋กœ .log๋ฅผ ๋ˆ„๋ฝ์ž‘์„ฑํ•ด์„œ ์˜ค๋ฅ˜๋ฐœ์ƒ
๋‹ค์Œ์— ์ž‘์„ฑ์‹œ๋Š” copy&paste๋ฅผ ์‚ฌ์šฉํ•˜๋˜์ง€ ์•„๋‹ˆ๋ฉด ์ „์ฒด ๊ตฌ์กฐ๋ฅผ ๋‹ค ์™ธ์›Œ์•ผํ• ๋“ฏํ•จ

2.JDBC ์—ฐ๊ฒฐ์ •๋ณด ์ˆ˜์ •(root-context.xml) hikariConfig bean์— driverClassName, jdbcUrl property๋ฅผ ์ˆ˜์ •ํ•ด์คŒ
driverClassName์€ ์•„์˜ˆ ๋‹ค๋ฅธ value๋ฅผ jdncUrl์€ jdbc:oracle ์‚ฌ์ด์— :log4jdbc๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•ด์คŒ
์ œ๋Œ€๋กœ ์ถ”๊ฐ€ํ–ˆ๋‹ค๋ฉด ๊ธฐ์กด์˜TimeMapperTestsํด๋ž˜์Šค์˜ ํ…Œ์ŠคํŠธ ๋ฉ”์†Œ๋“œ๋ฅผ ์‹คํ–‰์‹œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋กœ๊ทธ๊ฐ€ ์ •์ƒ ์ถœ๋ ฅ๋จ

๋กœ๊ทธ์˜ ๋ ˆ๋ฒจ ์„ค์ •

์œ„ ํ…Œ์ŠคํŠธ ์ฒ˜๋Ÿผ ์‹คํ–‰์‹œ ์ƒ๋‹นํžˆ ๋งŽ์€ ์–‘์˜ ๋กœ๊ทธ๊ฐ€ ์ถœ๋ ฅ๋จ ์ฒ˜์Œ์— ๊ฐœ๋ฐœํ• ๋•Œ๋Š” ์ข‹์ง€๋งŒ ์‹œ๊ฐ„์ด ์ง€๋‚ ์ˆ˜๋ก ๋ถˆํŽธํ•˜๋‹ค๊ณ  ๋А๊ปด์ง
๋‚ด๊ฐ€ ํ•„์š”ํ•œ ์ˆ˜์ค€์˜ ๋กœ๊ทธ๋งŒ ์ถœ๋ ฅ์‹œ์ผœ์•ผํ•˜๊ธฐ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ์ƒํ™ฉ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ๊ฒƒ์ด ๋กœ๊ทธ๋ ˆ๋ฒจ์ž„

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ๋•Œ์˜ ๋กœ๊ทธ์™€ ๊ด€๋ จ๋œ ์„ค์ •์€ src/test/resources ๋ฐ‘์˜
log4j.xml์— ํ•ด์ค˜์•ผํ•จ(src/main/resources๊ฐ€ ์•„๋‹Œ src/test/resources์ž„์„ ์ฃผ์˜)

์œ„ ๊ฒฝ๋กœ์˜ log4j.xml์„ ์‹คํ–‰์‹œ ์˜ค๋ฅ˜ ๋ฐœ์ƒํ•จ log4j.DTDํŒŒ์ผ์ด ์—†์–ด์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์ž„ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€
"http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd"
DTDํŒŒ์ผ์˜ ์ฃผ์†Œ๋ฅผ ๋‚ด IDE๋‚ด๋ถ€ ์ฃผ์†Œ๊ฐ€ ์•„๋‹Œ ์œ„์˜ ๊ฐ’์ฒ˜๋Ÿผ ์›น์‚ฌ์ดํŠธ๋‚ด์˜ ์ ˆ๋Œ€๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜๋˜์ง€
DTDํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„์„œ ๊ฒฝ๋กœ์— ๋„ฃ๋˜์ง€ ๋‘˜์ค‘์— ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด๋จ.

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋ ๋•Œ ๋ณด์—ฌ์ง€๋Š” 'INFO ...' ๋ฉ”์‹œ์ง€๋Š” log4j.xml์˜
๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์—์žˆ๋Š” ์„ค์ •์˜ ์˜ํ–ฅ์„ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์ž„.

log4jdbc์—์„œ ์ถœ๋ ฅ๋˜๋Š” ๋กœ๊ทธ๋ฅผ ์กฐ์ ˆํ•˜๋ ค๋ฉด ์ถ”๊ฐ€์ ์ธ ๋ฅผ ์ง€์ •ํ•ด์„œ ์ฒ˜๋ฆฌํ•จ.

๊ธฐ๋ณธ ์„ค์ •์˜ ๋กœ๊ทธ๋Š” info๋ ˆ๋ฒจ์ด๊ธฐ ๋•Œ๋ฌธ์— jdbc.audit, jdbc.resultset, jdbc.connection์˜
๋ฅผ ์ง€์ •ํ•ด์„œ warn๋ ˆ๋ฒจ๋กœ ์˜ฌ๋ ค์คŒ
์ˆ˜์ •์ดํ›„ ๋‹ค์‹œ TimeMapperTestsํด๋ž˜์Šค์˜ ํ…Œ์ŠคํŠธ ๋ฉ”์†Œ๋“œ ์‹คํ–‰์‹œ ์ด์ „์— ๋น„ํ•ด์„œ ๋กœ๊ทธ์–‘์ด ์ค„์–ด๋“ ๊ฒƒ์„ ๋ณผ์ˆ˜์žˆ์Œ.

๋กœ๊ทธ ๋ ˆ๋ฒจ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช… https://logging.apache.org/log4j/2.x/manual/customloglevels.html ์ฐธ๊ณ 

โš ๏ธ **GitHub.com Fallback** โš ๏ธ