๐[Spring] Logger์ ๋ํด์โฆ
๐Logger์ ๋ํด์โฆ
๋ชจ๋ ํ์์ ์ด๋ฒคํธ ์ ๋ณด๋ฅผ ์๊ฐ์ ๊ฒฝ๊ณผ์ ๋ฐ๋ผ ๊ธฐ๋กํ ๋ฐ์ดํฐ ์์คํ
์์์ ๋ก๊ทธ
๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ ๋ก๊น
(Logging)
์ด๋ผ๊ณ ํ๋ค.
- ๋ก๊น (logging)์ ์ฅ์
- ๊ฐ๋ฐ ํ๋ก๊ทธ๋จ์ ๋๋ฒ๊น ์๊ธฐ์น ๋ชปํ ๋ฌธ์ ์ ์์ธ ํ์ ์์คํ ๋ฐ ์ฌ์ฉ์์ ๋์ ํจํด ๋ถ์ ํดํน(์นจ์ )์ ๋น์ ์ ๋์์ ๊ธฐ๋ก์ ๊ฐ์ง ๋ถ์์ ํตํ ํต๊ณํ
1. Logger ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Logback, Log4J ๋ฑ์ด ์์ง๋ง ์คํ๋ง๋ถํธ์์ ์ด ๊ฒ๋ค์ ํตํฉํด์ ์ฐ๋ ๊ฒ์ด ๋ฐ๋ก SLF4J
์ด๋ค.
2. Log ์ ์ธ
[1๋ฒ ์์ ]
// 1๋ฒ
private final Logger log = LoggerFactory.getLogger(getClass());
// 2๋ฒ
private static final Logger log = LoggerFactory.getLogger(Xxx.class)
// 3๋ฒ
@Slf4j
public class LogTestController {
}
[2๋ฒ ์์ ]
public TraceStatus begin(String message) {
TraceId traceId = new TraceId();
Long startTimeMs = System.currentTimeMillis();
log.info("[{}] {}{}", traceId.getId(), addSpace(START_PREFIX, traceId.getLevel()), message); // ๋ก๊ทธ ํธ์ถ
// ๋ก๊ทธ ์ถ๋ ฅ
return new TraceStatus(traceId, startTimeMs, message);
}
3. ๋ก๊ทธ ๋ ๋ฒจ
๋ก๊ทธ์๋ ๋ ๋ฒจ์ด ์๋ค!
trace -> debug -> info -> warn -> error
- ์ผ๋ฐ์ ์ผ๋ก ๊ฐ๋ฐ ์๋ฒ๋ debug, ์ด์ ์๋ฒ๋ info๋ก ์ค์ ํจ.
[๋ก๊ทธ ํธ์ถ]
@Slf4j
@RestController
public class LogTestController {
@RequestMapping("/log-test")
public String logTest(){
// ๋ก๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด์ฉํ ์ถ๋ ฅ
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);
return "ok";
}
}
๋๊ธ๋จ๊ธฐ๊ธฐ