๐Scheduled ๋๋ ๋ ์
Scheduled ๊ธฐ๋ฅ์ ์ฌ์ฉํ์๋ค๋ฉด, ํ ๋ฒ์ฏค์ ๊ฒช์ด๊ฐ๋ ์ฝ์ค๋ผ๊ณ ์๊ฐํ๋ค.
ํนํ๋ ์ด๋ฒ์ Logback ๊ธฐ๋ฅ์ ์ถ๊ฐ ํ๋ฉฐ, Spring ์ค์ผ์ค๋ฌ์์ ๋ก๊ทธ๊ฐ ๋ ๋ฒ์ฉ ์ฐํ๋ ๊ฒ์ ๋ณด๊ณ ์์ฐจ ์ถ์๋ค.
๐์์ธ?
๐์ค์ผ์ค๋ฌ๊ฐ ์ค๋ณต์ผ๋ก ์คํ๋๋ ์์ธ์ ๋ค์ํ๊ฒ ์์ง๋ง, Spring์์๋ ๋ํ์ ์ผ๋ก Bean ์์ฑ์ด ๋ ๋ ๋ฐ์ํ๋ค.
Bean์ ์์ฐจ์ ์ผ๋ก @Configuration ์ด๋ ธํ ์ด์ ์ด ์ค์ ๋ config Class ๋ฅผ ์ฝ์ผ๋ฉฐ ์ด์ ๊ด๋ จ๋ ์ค์ ํ์ผ(properties)๋ค์ ํจ๊ป ๋ถ๋ฌ์ค๋ฉฐ Bean์ ๋ฑ๋กํ๊ฒ ๋๋๋ฐ(Create๊ฐ ์๋๋ผ Register์ ๊ฐ๋ ์ด๋ค.) Context์์ ์ค์ผ์ค๋ฌ Bean ์ ๋ฑ๋กํ๊ฒ๋๊ณ , @Component ๋ฑ์ ์ด๋ ธํ ์ด์ ์ผ๋ก ์ธํด scan์ ์งํํ๋ฉด์ Bean ์ ๋ฑ๋กํ๋ ๋ ๋ฒ ์ ์ธ์ด ๋๋ ๊ฒ์ด ์๋๊ฐ!
๊ฐ์ ๋งฅ๋ฝ์ผ๋ก logback ๊ณผ ๊ฐ์ด Spring์์ ๊ณต์ ์ง์ํ๋ ์ถ๊ฐ์ ์ธ ๋ชจ๋์ ๋ฑ๋กํ๋ ๊ฒฝ์ฐ์๋, Auto Scan ์ ํ๋ค.
(ํธ์์ฑ์๋ ๋ ๋๊ฐ๊ฐ ๋ฐ๋ฅด์ง..)
Tomcat ์ด๋ WebLogic ๊ณผ ๊ฐ์ WAS์์๋ ๋ญ.. ๋งํ ๊ฒ๋ ์์ง ์๊ฒ ๋๊ฐ ใ ใ กใ
์์ฐธ! ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง ํด๋์ค(๋น ๋ฑ๋กํ ์ปดํฌ๋ํธ)๋ฅผ ์ค๋ณต์ผ๋ก ๋ฑ๋กํ ์ผ์ ์์ง๋ง.. ๋ฌด์ฌ์ฝ ๋ณต๋ถํ ํ์ผ์ ์ฌ์ฉํ๋ค๋ฉด? ConflictingBeanDefinitionException ๊ฐ ๋ฐ์ํ๋ ์ฃผ์ํ๋๋ก!!
๐ํด๊ฒฐ(Solution)
๐Logback-spring.xml
์ผ๋จ ์ด ๊ธ์ ์์ฑํ๊ฒ ๋ ์์ธ์ธ ๋ถ๋ถ์ ๋ช ํํ๊ฒ ํ์ ํ๋ค. (์ค๋ฅ๊ฐ ์๋ ๊ฒ์ด๊ธฐ์ ๋ช ํํ ์์ธ์ ๊ตฌ์กฐ๋ฅผ ์ดํดํด์ผํ๋ค.)
"logback-spring.xml" ์์๋ "logger" ๋ฅผ ์ ์ํ๊ฒ ๋์ด์๋ค.
logger๋ org.springframework(logger)์ root(ํ๋ก์ ํธ) ๊ฐ ๊ฐ์ appender๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ค๋ณต์ผ๋ก ๋ฐ์ํ๋ ๊ฒ์ด๋ค!!
์๋ ์์ ๋ฅผ ๋ณด๋ฉด logger์ ํ๋ก์ ํธ ํจํค์ง ์์ฒด๋ฅผ ์ฃผ์ ํ์์ผ๋ฏ๋ก.. ์ฌ์ค ์ root์ ๊ฐ๋ค.
"logback-spring.xml"
<!-- ์์ -->
<!-- ๊ธฐ๋ณธ ๋ก๊ทธ ์ค์ -->
<root level="${LOG_ROOT_LEVEL}">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE" />
</root>
<!-- ํ๋ก์ ํธ ๋ก๊ทธ ์ค์ -->
<logger name="kr.co.ooweat.springBatchApi" level="${LOG_ROOT_LEVEL}">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE" />
</logger>
๋คํํ logback ์์๋ ์ต์ ์ฒ๋ฆฌ๋ก ๊ฐ๋จํ๊ฒ ์งํํ ์ ์๋ค. additivity="false"
<!-- ์์ -->
<!-- ๊ธฐ๋ณธ ๋ก๊ทธ ์ค์ -->
<root level="${LOG_ROOT_LEVEL}">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE" />
</root>
<!-- ํ๋ก์ ํธ ๋ก๊ทธ ์ค์ -->
<logger name="kr.co.ooweat.springBatchApi" level="${LOG_ROOT_LEVEL}" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE" />
</logger>
๐์ถ๊ฐํ ๋ด์ฉ
๊ฐ์ ์ค๋ณต๋๋ ์์ธ์ด ๋ฐ๊ฒฌ๋ ๋๋ง๋ค ๋ฐ๋ก ์ฌ๊ธฐ์ ์ถ๊ฐ ์์ฑํ๋๋ก ํด์ผ๊ฒ ๋ค.