-
[SpringBoot] SpringBoot์์ ๋ก๊ทธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๐ปProgramming/SpringBoot 2024. 3. 3. 19:15
Logging์ด๋?
- ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์ผ๋ จ์ ๊ธฐ๋ก์ธ ๋ก๊ทธ๋ฅผ ์์ฑํ๋๋ก ์์คํ ์ ์์ฑํ๋ ํ๋
๋ก๊ทธ๋ฅผ ์ฌ์ฉํ๊ธฐ์ ์์ ํ๋ถ์ ๊ฐ๋ฐ์๋ค์ Java์์ ์ค๋ฅ๋ฅผ ํ์ธํ๊ณ ์ถ์ ๋ ๋ณดํต System.out.println() ์ฌ์ฉํ๋ค. ๋๋ง ๊ทธ๋ฌ์์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง?..
System.out.println()
ํ์ง๋ง ํ์ ์์๋ ๋ฌด์กฐ๊ฑด log๋ฅผ ์ด์ฉํ์ฌ ์ค๋ฅ๋ฅผ ์ถ๋ ฅํ๋ค๊ณ ํ๋ค. ๊ทธ ์ด์ ๋ ๋ฌด์์ผ๊น?
1. ์ค๋ ๋ ์ ๋ณด, ํด๋์ค ์ด๋ฆ๊ฐ์ ๋ถ๊ฐ ์ ๋ณด๋ฅผ ํจ๊ป ๋ณผ ์ ์๊ณ , ์ถ๋ ฅ ๋ชจ์์ ์กฐ์ ํ ์ ์๋ค.
2. ๋ก๊ทธ ๋ ๋ฒจ์ ๋ฐ๋ผ ๊ฐ๋ฐ ์๋ฒ์์๋ ๋ชจ๋ ๋ก๊ทธ๋ฅผ ์ถ๋ ฅํ๊ณ , ์ด์ ์๋ฒ์์๋ ์ถ๋ ฅํ์ง ์๋ ๋ฑ ๋ก๊ทธ๋ฅผ ์ํฉ์ ๋ง๊ฒ ์กฐ์ ํ ์ ์๋ค.
3. ์์คํ ์์ ์ฝ์์๋ง ์ถ๋ ฅํ๋ ๊ฒ์ด์๋๋ผ, ํ์ผ์ด๋ ๋คํธ์ํฌ ๋ฑ ๋ก๊ทธ๋ฅผ ๋ณ๋์ ์์น์ ๋จ๊ธธ ์ ์๋ค.
4. ํนํ ํ์ผ๋ก ๋จ๊ธธ ๋์๋ ์ผ๋ณ, ํน์ ์ฉ๋์ ๋ฐ๋ผ ๋ก๊ทธ๋ฅผ ๋ถํ ํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
5. println์ ์ฌ์ฉํ์์ ๋๋ณด๋ค ๋ด๋ถ ๋ฒํผ๋ง, ๋ฉํฐ ์ค๋ ๋ ๋ฑ์ ํ๊ฒฝ์์ ํจ์ฌ ์ข๋ค.
์คํ๋ง๋ถํธ์ ์์กด์ฑ์ ํ์ธํด๋ณด๋ฉด starter์์ logging์ ํ์ธํ ์ ์๋ค.
logging์์ slf4j๋ ์ฝ๊ฒ ์๊ธฐํ๋ฉด ์ธํฐํ์ด์ค์ด๊ณ , ์ด๋ค ๊ตฌํ์ฒด๋ฅผ ์ถ๋ ฅํ ๊ฑด์ง์ ๋ํด ์์ฆ์ logbag์ ์ฌ์ฉํ๋ค. logbag๋ง๊ณ ๋ ๋ค๋ฅธ ๊ฒ๋ค๋ ์์ง๋ง, logbag์ด ๊ฐ์ฅ ์ข์ ์์ ์คํ๋ง๋ถํธ์์๋ ํ์ค์ผ๋ก ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
logging ๊ด๋ จ ํ๋ ์์ํฌ๋ ๋ํ์ ์ผ๋ก log4j, logback, log4j2๋ฑ์ด ์๊ณ ๊ทธ๊ฒ์ ํตํฉํ์ฌ ์ธํฐํ์ด์ค๋ก ์ ๊ณตํ๋ ๊ฒ์ด slf4j๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
Spring์์์ Logging ์ฌ์ฉ ๋ฐฉ๋ฒ
Log Level
1. error: ์ฌ์ฉ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์ค ๋ฐ์ํ ๋ฌธ์ .
2. warn: ์ฒ๋ฆฌ ๊ฐ๋ฅํ ๋ฌธ์ ์ด์ง๋ง, ํฅํ ์์คํ ์๋ฌ์ ์์ธ์ด ๋ ์ ์๋ ๋ฌธ์ .
3. info: ๋ก๊ทธ์ธ์ด๋ ์ํ ๋ณ๊ฒฝ๊ณผ ๊ฐ์ ์ ๋ณด์ฑ ๋ฉ์์ง
4. debug: ๊ฐ๋ฐ์ ๋๋ฒ๊น ๋ชฉ์ ์ผ๋ก ์ถ๋ ฅํ๋ ๋ฉ์์ง
5. trace: debug๋ณด๋ค ์ข ๋ ์์ธํ ๋ฉ์์ง
* ๋ณดํต ๊ฐ๋ฐ ์๋ฒ๋ debug, ์ด์ ์๋ฒ๋ info๋ก ์ฌ์ฉํ๋ค.
Log Level์ ์ค์ ํ๋ ๋ฐฉ๋ฒ
application.yml์์
logging: level: springboot.MVCBasic: debug
์ ๊ฐ์ด ์ค์ ํด์ค ์ ์๋ค. ๋ํดํธ ๊ฐ์ info์ด๋ค. ํน์ ๋ก๊ทธ ๋ ๋ฒจ์ ์ง์ ํ๋ฉด ํด๋น ๋ก๊ทธ ๋ ๋ฒจ์ ์์ ์ฐ์ ์์ ๋ก๊ทธ๊ฐ ๋ชจ๋ ์ถ๋ ฅ๋๋ค. ์๋ฅผ ๋ค์ด ํน์ ๋ก๊ทธ ๋ ๋ฒจ์ info๋ก ์ง์ ํ๋ฉด info, warn, error ๋ก๊ทธ๊ฐ ์ ๋ถ ์ถ๋ ฅ๋๋ค.
Log๋ฅผ ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ
private final Logger log = LoggerFactory.getLogger(this.getClass().getSimpleName()); log.trace("trace log = {}", name); log.debug("debug log = {}", name); log.info("info log = {}", name); log.warn("warn log = {}", name); log.error("error log = {}", name);
์ ๊ฐ์ด ์ฌ์ฉํ ์๋ ์๊ณ ,
์์ ํด๋์ค์ @Slf4j ์ด๋ ธํ ์ด์ ์ ๋ถ์ฌ์ค๋ค๋ฉด ๊ทธ๋ฅ ๋ฐ๋ก log.~~๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
์ log.info("info log", name);๊ฐ ์๋ log.info("info log = {}", name);์ ๊ฐ์ ํ์์ผ๋ก ์์ฑํด์ผํ ๊น?
์ฑ๋ฅ์ด ์ข์ง ์๋ค. ์ ์์ ๋ฐฉ์์ logging level์ ํฌํจ๋์ด์์ง ์์์ ์ถ๋ ฅํ ํ์๊ฐ ์์์๋ ์ผ๋จ ๋ฌธ์์ด์ ์๋ก ๋ํ๋ ์ฐ์ฐ์ด ์ํ๋๊ธฐ ๋๋ฌธ์ ๋น์ฉ๋ฉด์์ ์ํด๋ฅผ ๋ณด๊ฒ ๋๋ค.
References
https://dkswnkk.tistory.com/445
'๐ปProgramming > SpringBoot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ