EEALL@ONCE
๐ฑ ํ์ ์์ System.out.println ๋์ ๋ก๊น ์ ์ฌ์ฉํ๋ ์ด์ (SLF4J(๊ฐ๋จํ ๋ก๊น ํฉ์ฌ๋)์ Logback) ๋ณธ๋ฌธ
๐ฑ ํ์ ์์ System.out.println ๋์ ๋ก๊น ์ ์ฌ์ฉํ๋ ์ด์ (SLF4J(๊ฐ๋จํ ๋ก๊น ํฉ์ฌ๋)์ Logback)
์ฌ์ฃ์์ค 2023. 10. 16. 19:21ํ์ ์์ System.out.println ๋์ ๋ก๊น ์ ์ฌ์ฉํ๋ ์ด์ ๋ ์๋์ ๊ฐ๋ค.
- ๋ก๊ทธ ๋ ๋ฒจ ๊ด๋ฆฌ: ๋ก๊น ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ก๊ทธ ๋ฉ์์ง๋ฅผ ๋ค์ํ ๋ ๋ฒจ๋ก ๋ถ๋ฅํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก DEBUG, INFO, WARN, ERROR, ๋ฑ์ ๋ ๋ฒจ๋ก ๋ก๊ทธ๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ด๋ค ์ข ๋ฅ์ ๋ฉ์์ง๊ฐ ์ด๋ค ์กฐ๊ฑด์์ ๋ฐ์ํ๋์ง ๋ช ํํ๊ฒ ํ์ ํ ์ ์์ต๋๋ค.
- ๋์ ์ค์ : ๋ก๊น ๋ ๋ฒจ์ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ด์ ํ๋ก๊ทธ๋จ์ ๋ฐํ์์ ๋ก๊น ๋ ๋ฒจ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ด๋ ๋๋ฒ๊น ์์ ์ ์ฉํ๋ฉฐ, ๋ฌธ์ ํด๊ฒฐ์ ์ํด ๋ก๊ทธ ์์ค์ ๋์ด๊ฑฐ๋ ๋ฎ์ถ ์ ์์ต๋๋ค.
- ๋ก๊น ์์น ์ค์ : ๋ก๊ทธ๋ฅผ ํ์ผ, ์ฝ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ ์ฌ๋ฌ ์์น์ ์ถ๋ ฅํ ์ ์์ต๋๋ค. ์ด๋ ๋ก๊ทธ ๋ฉ์์ง๋ฅผ ์ค์ ์ง์คํํ๊ฑฐ๋, ๋ณด์์ ๊ฐํํ๊ฑฐ๋, ๋ชจ๋ํฐ๋ง ๋ฐ ๋ถ์์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
- ์ฑ๋ฅ ์ต์ ํ: ๋ก๊น ํ๋ ์์ํฌ๋ ๋ฉ์์ง๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ ํจ์จ์ ์ธ ๋ก๊น ์ ์ํ ์ต์ ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ, ๋ก๊ทธ ๋ฉ์์ง๋ฅผ ๋นํ์ฑํํ ๋ ์ค๋ฒํค๋๋ฅผ ์ต์ํํฉ๋๋ค.
- ๊ธฐ๋ก ๋ฐ ์ถ์ : ๋ก๊น ์ ํ๋ก๊ทธ๋จ์ ์คํ์ ๊ธฐ๋กํ๊ณ ์ถ์ ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ์ ๋์์ ํ์ ํ๊ณ , ๋ฌธ์ ํด๊ฒฐ์ ์ํ ์ ๋ณด๋ฅผ ์์งํ ์ ์์ต๋๋ค.
์๋๋ Java์์ ๋ก๊น ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ ์์ ์ฝ๋์ ๋๋ค:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyClass {
private static final Logger logger = LoggerFactory.getLogger(MyClass.class);
public void doSomething() {
// ...
// ๋ก๊ทธ ๋ฉ์์ง ์ถ๋ ฅ
logger.debug("Debug ๋ฉ์์ง");
logger.info("Info ๋ฉ์์ง");
logger.warn("Warn ๋ฉ์์ง");
logger.error("Error ๋ฉ์์ง");
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SLF4J(๊ฐ๋จํ ๋ก๊น
ํฉ์ฌ๋)์ Logback์ Java ์ดํ๋ฆฌ์ผ์ด์
์ ๋ก๊น
์ ์ฌ์ฉ๋๋ ๋ ๊ฐ์ง ์ฃผ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค. ๊ฐ๊ฐ์ด ์ด๋ค ์ญํ ์ ํ๋์ง ์ค๋ช
ํ๊ฒ ์ต๋๋ค.
1. **SLF4J (Simple Logging Facade for Java):**
- SLF4J๋ ๋ก๊น
์ ๋ํ ์ถ์ํ ๋ ์ด์ด๋ฅผ ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค. ๋ค๋ฅธ ๋ก๊น
ํ๋ ์์ํฌ(์: Logback, Log4J, JUL)์ ์ฐ๊ฒฐ๋์ด ์ฌ์ฉํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค.
- ์ฃผ์ ๋ชฉ์ ์ ์ดํ๋ฆฌ์ผ์ด์
์ฝ๋์์ ๋ก๊น
์ฝ๋๋ฅผ ํน์ ๋ก๊น
ํ๋ ์์ํฌ์ ์์กดํ์ง ์๋๋ก ๋ง๋๋ ๊ฒ์
๋๋ค. ์ด๊ฒ์ ์ฝ๋๋ฅผ ๋ ์ ์ฐํ๊ฒ ๋ง๋ค๊ณ , ๋ก๊น
ํ๋ ์์ํฌ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ์
๊ทธ๋ ์ด๋ํ ๋ ์ฝ๊ฒ ์ ํํ ์ ์๋๋ก ๋์์ค๋๋ค.
- SLF4J๋ ๋ก๊ฑฐ ๋ฐ์ธ๋ฉ(Logger Binding)์ ํตํด ๋ฐฑ์๋ ๋ก๊น
ํ๋ ์์ํฌ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค. ์ด๋ก์จ Logback, Log4J, JUL ๋ฑ ๋ค์ํ ๋ฐฑ์๋ ๋ก๊น
ํ๋ ์์ํฌ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
2. **Logback:**
- Logback์ SLF4J์ ํจ๊ป ์ฌ์ฉํ๊ธฐ ์ํ ๋ฐฑ์๋ ๋ก๊น
ํ๋ ์์ํฌ ์ค ํ๋์
๋๋ค. SLF4J๋ฅผ ์ฌ์ฉํ๋ฉด์ Logback์ ์ ํํ๋ฉด ์ข์ ํตํฉ๊ณผ ์ฑ๋ฅ์ ์ป์ ์ ์์ต๋๋ค.
- Logback์ ์ฑ๋ฅ์ด ์ฐ์ํ๋ฉฐ, ๋ก๊น
์ด๋ฒคํธ๋ฅผ ํ์ผ, ์ฝ์, ์๊ฒฉ ์๋ฒ ๋ฑ ๋ค์ํ ๋์์ ์ถ๋ ฅํ ์ ์์ต๋๋ค.
- XML ๋๋ Groovy ์ค์ ํ์ผ์ ํตํด ๋ก๊ทธ ๋ ๋ฒจ, ์ถ๋ ฅ ํ์, ๋ก๊ทธ ํ์ผ ์์น ๋ฑ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- Logback์ ์์ฒด์ ์ผ๋ก ํจํด ๋ ์ด์์(PatternLayout)์ ์ง์ํ๋ฉฐ, ๋ก๊ทธ ๋ฉ์์ง์ ํ์์ ๋ง์ถ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
์ด ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ฉด, ์ดํ๋ฆฌ์ผ์ด์
์์ ๋ก๊น
์ฝ๋๋ฅผ SLF4J API๋ฅผ ํตํด ์์ฑํ๊ณ , ์ค์ ๋ก๊น
๊ตฌํ์ฒด๋ก Logback์ ์ ํํ๋ ๋ฐฉ์์ผ๋ก ์ ์ฐํ๊ณ ์ฑ๋ฅ์ด ์ข์ ๋ก๊น
์ ๊ตฌํํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ดํ๋ฆฌ์ผ์ด์
์ ๋ก๊น
์ ์ฝ๊ฒ ๋ณ๊ฒฝํ๊ณ , ๋ค์ํ ์ถ๋ ฅ ๋์ ๋ฐ ๋ก๊ทธ ๋ ๋ฒจ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
'Spring๐ฑ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฑMethod Chaining ( ๋ฉ์๋ ์ฒด์ด๋) (0) | 2023.11.07 |
---|---|
๐ฑ@Builder ์ด๋ ธํ ์ด์ (0) | 2023.11.07 |
๐ฑ ์ธํ ๋ฆฌ์ ์ด ์คํ ์๋ ๋น ๋ฅด๊ฒ ํ๋ ๋ฒ (0) | 2023.10.16 |
๐ฑ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ฑ๊ธํค / ์ฑ๊ธํค ํจํด์ ๋ฌธ์ ์ (0) | 2023.08.19 |
๐ฑ๋น ์ค์ ๋ฉํ ์ ๋ณด (0) | 2023.08.19 |