로그 수준 WARN, ERROR 및 FATAL은 매우 명확합니다. 하지만 뭔가가 디버그 일 때, 그리고 언제 정보일까요?사용할 로그 수준을 결정하는 방법은 무엇입니까?
INFO 레벨에서 귀찮게 자세한 프로젝트를 보았지만 DEBUG 레벨을 너무 많이 사용하는 코드를 보았습니다. 두 경우 모두 소음에 유용한 정보가 숨겨져 있습니다.
로그 수준을 결정하기위한 기준은 무엇입니까?
로그 수준 WARN, ERROR 및 FATAL은 매우 명확합니다. 하지만 뭔가가 디버그 일 때, 그리고 언제 정보일까요?사용할 로그 수준을 결정하는 방법은 무엇입니까?
INFO 레벨에서 귀찮게 자세한 프로젝트를 보았지만 DEBUG 레벨을 너무 많이 사용하는 코드를 보았습니다. 두 경우 모두 소음에 유용한 정보가 숨겨져 있습니다.
로그 수준을 결정하기위한 기준은 무엇입니까?
나는 굳건한 규칙이 없다고 생각합니다.
돌로 세워진 것이 아니라 내가 어떻게 생각하는지에 대한 대략적인 생각.
누가 각 단계를 사용해야하는지 생각하십시오. 코드 내에서 DEBUG은 개발자 출력용으로 예 약되어 있습니다. 출력은 개발자에게만 도움이됩니다. VERBOSE은 많은 정보가 필요한 일반 사용자에게 사용됩니다. 정보 일반적으로 중요한 이벤트를 표시하는 데 사용됩니다 (예 : 웹 페이지 보내기, 중요한 사항 확인).
및 FAIL 및 WARN은 매우 자명합니다.
비공식적으로는 내가 계층 구조의이 종류,
나는 일반적으로 INFO로 기록되지만, 로그 파일이 실제로 검토되고 (크기는 문제가 아님) 알 경우에만 그렇지 않으면 WARN입니다.
우리 팀의 규칙은 메시지에서 무언가를 계산하는 경우 debug
을 사용하는 반면 일반 텍스트는 info
입니다. 따라서 실제로 info
에서 무슨 일이 일어나고 있는지를 보여주고 debug
은 현재 일어나는 일의 가치를 보여줍니다.
나는 심지어 경고가 아닌 메시지를 사용자에게 보내려는 경향이 있습니다. DEBUG는 코드를 통해 흐름을 추적하는 데 도움이되는 메시지를 출력하는 개발자 용 (변수 값 포함) 경향이 있습니다.
또 다른 레벨의 DEBUG (DEBUG2?)는 모든 버퍼의 16 진 덤프와 같은 디버그 정보의 절대 bucketload를 제공합니다.
DEBUG2 레벨이 필요하지 않습니다. 그것은 'TRACE'가있는 것입니다. TRACE는보고 싶은 모든 정보를 출력하는 가장 낮은 수준의 로깅을 목표로합니다.
대용량 정보를 피하려면 일반적으로 전체 프로젝트에서 추적 수준 로깅을 사용하지 않는 것이 좋습니다. 대신 'DEBUG'을 사용하여 버그에 대한 일반적인 정보와 그 버그가 발생한 위치 (따라서 이름)를 찾은 다음 여전히 파악할 수없는 경우 해당 구성 요소에 대해서만 TRACE를 활성화하십시오.
많은 정보 나 경고가 개발자에게 도움이 될 것이라고 생각합니다. – Casebash