Log.INFO 대 Log.DEBUG [종료 됨]


96

대형 상용 프로그램을 개발 중이며 Log.INFO 및 Log.DEBUG로 기록하려는 정보의 종류를 혼동하고 있습니다. 각 유형의 로그 메시지에 포함 된 내용에 대한 표준 또는 경험 규칙이 있습니까?

답변:


132

나는 보통 다음과 같이 사용하려고합니다.

  • DEBUG : 문제를 디버깅하려고 할 때 개발자에게 흥미로운 정보입니다.
  • 정보 : 주어진 오류의 컨텍스트를 파악하려는 지원 담당자에게 흥미로운 정보
  • 치명적 경고 : 손상 수준에 따른 문제 및 오류.

INFO는 프로덕션에서 항상 활성화 할 수 있습니까? 성능에 영향을 미칩니 까?
pinkpanther

1
상황에 따라 다릅니다. (그 대답이 마음에 듭니다) 고려해야 할 요소는 다음과 같습니다. 1. 정보 로그 라인의 양 2. 로깅 설정 (로깅 라인은 어디에서 끝나나요?) 3. 사용 가능한 처리 및 io 전원 관련 시스템.
nfechner

1
소음이 많을수록 문제를 발견하기가 더 어려워집니다. 에서 plumberjack.blogspot.be/2010/09/... : 유닉스 철학 일반에>, 소프트웨어는 할 필요가, 또는으로 요청되는 경우를 제외하고는 너무 장황해서는 안된다. (왜 나는 이것을 인용 할 수 없습니까?)
axd

38

디버그 : 일반적으로 디버깅에 사용되는 프로그램 상태에 관한 세분화 된 문입니다.

정보 : 프로그램 상태에 관한 정보 설명, 프로그램 이벤트 또는 동작 추적을 나타냅니다.

경고 : 프로그램에서 잠재적으로 유해한 이벤트 또는 상태를 설명하는 문입니다.

오류 : 응용 프로그램의 치명적이지 않은 오류 를 설명하는 문입니다. 이 수준은 처리 된 예외를 기록하는 데 자주 사용됩니다.

치명적 : 가장 심각한 오류 조건을 나타내는 명령문으로, 프로그램이 종료되는 것으로 간주됩니다.

http://www.beefycode.com/post/Log4Net-Tutorial-pt-1-Getting-Started.aspx 에서 찾을 수 있습니다 .


사용자 입력에 의해 트리거 된 오류를 경고 또는 오류로 처리해야합니까? (IE 잘못된 사용자 이름 또는 암호)
Stevoisiak

@Stevoisiak 그의 답변을 기반으로 정보로 취급되어야한다고 생각합니다.
aderchox

9

또한 모든 info(), error()debug()로깅 호출은 모든 애플리케이션 내에서 내부 문서를 제공합니다.


좋은 지적이라고 생각합니다. 예를 들어 log.info("parse the widget text; ignore contents of 'foo'"), 로그 문이기도하지만 코드를 읽을 때 유용한 문서 역할을합니다.
Stew
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.