ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

     

    ๋ฐ˜์‘ํ˜•
Designed by Tistory.