
์ด์ ์์คํ ์์๋ System.out.println() ๊ฐ์ ์์คํ ์ฝ์์ ์ฌ์ฉํด์ ํ์ํ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ์ง ์๊ณ , ๋ณ๋์ ๋ก๊น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ ๋ก๊ทธ๋ฅผ ์ถ๋ ฅํ๋ค.
์คํ๋ง ๋ถํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์คํ๋ง ๋ถํธ ๋ก๊น ๋ผ์ด๋ธ๋ฌ๋ฆฌ(spring-boot-starter-logging)๊ฐ ํจ๊ป ํฌํจ๋๋ค.
์คํ๋ง ๋ถํธ ๋ก๊น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ธฐ๋ณธ์ผ๋ก ๋ค์ ๋ก๊น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค.
๋ก๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Logback,Log4J, Log4J2 ๋ฑ๋ฑ ์๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ฐ, ๊ทธ๊ฒ์ ํตํฉํด์ ์ธํฐํ์ด์ค๋ก ์ ๊ณตํ๋ ๊ฒ์ด ๋ฐ๋ก SLF4J๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค.
package hello.springmvc.basic;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//@Slf4j
@RestController
public class LogTestController {
private final Logger log = LoggerFactory.getLogger(getClass());
@RequestMapping("/log-test")
public String logTest() {
String name = "Spring";
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);
//๋ก๊ทธ๋ฅผ ์ฌ์ฉํ์ง ์์๋ a+b ๊ณ์ฐ ๋ก์ง์ด ๋จผ์ ์คํ๋จ, ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ฉด X
log.debug("String concat log=" + name);
return "ok";
}
}
private Logger log = LoggerFactory.getLogger(getClass());private static final Logger log = LoggerFactory.getLogger(Xxx.class)Slf4j : ๋กฌ๋ณต ์ฌ์ฉ ๊ฐ๋ฅlog.info("hello")System.out.println("hello")@RestController@Controller๋ ๋ฐํ๊ฐ์ด String์ด๋ฉด ๋ทฐ ์ด๋ฆ์ผ๋ก ์ธ์๋๋ค. ๊ทธ๋์ ๋ทฐ๋ฅผ ์ฐพ๊ณ ๋ทฐ๊ฐ ๋ ๋๋ง ๋๋ค.@RestController๋ ๋ฐํ ๊ฐ์ผ๋ก ๋ทฐ๋ฅผ ์ฐพ๋ ๊ฒ์ด ์๋๋ผ, HTTP ๋ฉ์์ง ๋ฐ๋์ ๋ฐ๋ก ์
๋ ฅํ๋ค. ๋ฐ๋ผ์ ์คํ ๊ฒฐ๊ณผ๋ก ok๋ฅผ ๋ฐ์ ์ ์๋ค. @ResponseBody์ ๊ด๋ จ์ด ์๋ค.TRACE > DEBUG > INFO > WARN > ERROR@Slf4j๋ก ๋ณ๊ฒฝ# application.properties
# ์ ์ฒด ๋ก๊ทธ ๋ ๋ฒจ ์ค์ (๊ธฐ๋ณธ info)
logging.level.root=info
#hello.springmvc ํจํค์ง์ ๊ทธ ํ์ ๋ก๊ทธ ๋ ๋ฒจ ์ค์
logging.level.hello.springmvc=debug
log.debug("data="+data) > ์๋ชป๋ ๋ก๊ทธ ์ฌ์ฉ๋ฒlog.debug("data={}", data)