mc.thd 2024. 6. 8. 21:03

λ‘œκΉ…μ΄ μ™œ ν•„μš”ν• κΉŒ?

λ°°ν¬ν™˜κ²½μ—μ„œ λ™μž‘ μƒνƒœλ₯Ό ν™•μΈν•˜κΈ° μœ„ν•΄μ„œ ν•„μš”ν•©λ‹ˆλ‹€.

기쑴의 System.out.println(), System.err.println()κ³Ό 같은 ν”Œλ‘œμš°λ‘œλŠ” ν•œκ³„κ°€ μžˆμŠ΅λ‹ˆλ‹€.

λ‘œκΉ…μ΄ κΈ°λ‘ν•˜λŠ” 두 κ°€μ§€ 사항

  • μ„œλΉ„μŠ€ λ™μž‘ μƒνƒœ
  • μž₯μ• (exceptino || error)

λ‘œκΉ… ν”„λ ˆμž„μ›Œν¬

  • SLF4J
  • Logback
  • Log4j
  • nlog

System.out.println()보닀 쒋은 점

  • 좜λ ₯ ν˜•μ‹μ„ μ§€μ •ν•  수 있음
  • 둜그 λ ˆλ²¨μ„ μ„€μ •ν•˜μ—¬ 남기고 싢은 둜그λ₯Ό λ³„λ„λ‘œ μ§€μ •ν•  수 있음
    • 개발 μ„œλ²„μ—μ„œλŠ” λͺ¨λ“  둜그λ₯Ό 좜λ ₯ν•˜κ³ , μš΄μ˜μ„œλ²„μ—μ„œλŠ” 좜λ ₯ν•˜μ§€ μ•ŠλŠ” λ“± 둜그λ₯Ό 상황에 맞게 μ‘°μ ˆν•  수 μžˆλ‹€
  • μ½˜μ†” 뿐 μ•„λ‹ˆλΌ, νŒŒμΌμ΄λ‚˜ λ„€νŠΈμ›Œν¬λ“± 둜그λ₯Ό λ³„λ„μ˜ μœ„μΉ˜μ— 남길 수 있음
  • μ„±λŠ₯도 System.out.println()보닀 μ’‹μŒ!

둜그레벨(Fatal > Error > Warn > Info > Debug > Trace)

  • Fatal : 맀우 μ‹¬κ°ν•œ μ—λŸ¬. ν”„λ‘œκ·Έλž¨μ΄ μ’…λ£Œλ˜λŠ” 경우둜 μž‘μ„±μ΄ λ˜μ§€ μ•ŠλŠ” κ²½μš°κ°€ 생기기 λ•Œλ¬Έμ— 잘 μ‚¬μš©λ˜μ§€ μ•ŠμŒ
  • Error : μ˜λ„ν•˜μ§€ μ•Šμ€ μ—λŸ¬κ°€ λ°œμƒν•œ 경우. ν”„λ‘œκ·Έλž¨μ΄ μ’…λ₯˜λ˜μ§„ μ•ŠμŒ. 주둜 μ™ΈλΆ€ apiμš”μ²­μ—λŸ¬(ν”„λ‘œκ·Έλž¨ λ‚΄μ—μ„œ κ°œλ°œμžκ°€ μ˜λ„ν•˜μ§€ μ•Šμ€ μ—λŸ¬)
  • Warn : μ—λŸ¬κ°€ 될 수 μžˆλŠ” 잠재적 κ°€λŠ₯성이 μžˆλŠ” 경우
  • Info : λͺ…ν™•ν•œ μ˜λ„κ°€ μžˆλŠ” μ—λŸ¬, μš”κ΅¬μ‚¬ν•­μ— 따라 μ‹œμŠ€ν…œ λ™μž‘μ„ 보여쀄 λ•Œ
  • Debug : Info λ ˆλ²¨λ³΄λ‹€ 더 μžμ„Έν•œ 정보가 ν•„μš”ν•œ 경우. Devν™˜κ²½
  • Trace : Debug 보닀 더 μžμ„Έν•¨. Devν™˜κ²½μ—μ„œ 버그λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œ μ‚¬μš©

빨간색 : κ°œλ°œμžκ°€ μ˜λ„ν•˜μ§€ μ•Šμ€ μ˜ˆμ™Έ
νŒŒλž€μƒ‰ : κ°œλ°œμžκ°€ μ˜λ„ν•œ μ˜ˆμ™Έ

 

μ„€μ •λœ log level의 ν•˜μœ„ 둜그 λ ˆλ²¨μ€ λ‚˜μ˜€μ§€ μ•ŠμŒ.

λ‘œκΉ… vs 디버깅

디버깅을 μ‚¬μš©ν•  수 μžˆλ‹€λ©΄ μ‚¬μš©ν•˜κ³ , 디버깅을 μ‚¬μš©ν•˜κΈ° μ–΄λ €μš΄ ν™˜κ²½(μ‹€μ œ μ„œλ²„ λ™μž‘)μ—μ„œ λ‘œκΉ…μ„ μ‚¬μš©

 

μ˜ˆμ™Έ 상황을 κ°€μž₯ 잘 νŒŒμ•…ν•  수 μžˆλŠ” 것은 디버깅을 μ‚¬μš©ν•©λ‹ˆλ‹€.
ν•˜μ§€λ§Œ
μ‹€μ œ μ„œλ²„κ°€ κ΅¬λ™λ˜λŠ” 쀑이라면 디버깅을 톡해 ν™•μΈν•˜κΈ° μ–΄λ ΅κΈ° λ•Œλ¬Έμ— λ‘œκΉ…μ„ ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

μ°Έκ³  : https://www.youtube.com/watch?v=1MD5xbwznlI&t=650s