대답은 응용 프로그램이 수행 정확히 무엇에 크게 의존하지만, 내 기본 접근 방식은 이것이다 :
당신이 이벤트를 기록 할 준비를 할 때마다, 그냥 사건에 대해 생각하고 자신이 속한 곳이 분명있을 것입니다 . 당신의 신청서가 죽었나요? 치명적입니다. 뭔가 올바르게 작동하지 못하도록 막았습니까? 그것은 오류입니다. 으로 인해 무언가가 작동하지 않도록 할 수 있으며 이번에는 운이 좋았습니까? 경고 야. 아무도 신경 안 쓸까? 정보. 그렇지 않으면 여전히 로그해야 할 경우 디버깅 용도 여야합니다.
특정 상황에서는 사용자 동작 만 기록하려고하는 것처럼 들릴 수 있습니다. 이 경우 치명적일 수있는 유일한 작업은 실행 취소 옵션을 제공하지 않는 작업입니다 (또는 사용자가 피아노 벤치를 주문할 수 있고 강력한 로프 길이를 주문할 수 있다면 신청). 또한 디버그 수준의 로그가 사용자 동작에서 발생한다고 상상할 수도 없습니다. 이 때문에 사용자 동작 외에 코드 수준 이벤트를 로깅한다고 가정합니다.
FATAL :이이는 응용 프로그램이 실제로 충돌 할 때 로그에 나타납니다, 그리고 아마도 함께 500 개 응답해야한다. 프로세스가 다르게 죽었을 때만 catch-all에서 wsgi 응용 프로그램 내에서 이들을 생성 할 수 있습니다.
오류 : 가능성이 http 오류 응답에 묶여 있습니다. 이것은 일반적으로 응용 프로그램 외부의 내용으로 인해 발생하는 오류입니다. 코드에서 발생하는 일이 예상되어 < = 경고 수준이거나 예상치 못한 치명적입니다.오류는 404에서 사용자가 오타를 만들거나 양식 제출시 유효성 검사 오류 또는 인증 오류 일 수 있습니다. 다른 방향에서 사용자가 접촉하는 원격 웹 서비스 또는 운영 체제의 IO 오류로 인해 오류가 반환 될 수 있습니다.
경고 : 치신하지 않습니다,하지만 당신은 그것을 유지하는 경우 그것이 당신을 물지 수있는 것들에 대한. 예를 들어 기본값 (시간대, 문자 인코딩 등) 때문에 사용되지 않는 api와 어디서나 작동하는 부분 만 사용하고 있습니다. 특정 입력 값으로 인해 과거에 기한을 설정하는 것과 같은 경고가 발생할 수도 있습니다.
정보 : 일반적이고 건강한 작동. (? 새 프로젝트 또는 작업) 누군가가, 데이터베이스 행을 만든 계정을 생성, 또는 밖으로, 소켓이 성공적으로 열렸다 기록 등
는
DEBUG :는 말한다 그냥 무슨. 코드가 올바르게 작동하면 보통 꺼지게되는 출력. 메소드 입력/종료, 객체 인스턴스화, 코드의 여러 지점에서 필드 값, 카운터. 프로그램이 왜 지금 당장 부서지고 있는지 알아 내야합니다.
http://simonwillison.net/2008/May/22/debugging/ – Chipmunk