2012-12-06 4 views
0

프로젝트 관리자와 비슷한 Django를 사용하여 응용 프로그램을 개발 중입니다. 이러한 이유로 시스템은 모든 것에 대한 정보를 저장할 수 있어야합니다. 모든 것을 말하면 사용자가 수행하는 작업, 작업 수행 중 발생한 오류 등을 참조하십시오. 클래스 Log가 있고 그 속성 중 하나가 action_type이고이 속성은 방금 발생한 작업의 종류를 지정합니다.웹 응용 프로그램에 로그 만들기

정보 :이 로그는 이러한 프로젝트를 만드는 등 사용자의 행동에 관한 정보를, 다른 사용자를 만드는 등

DEBUG : 나는 종류 5 종류가하기로되어 있어요은 개발자가 오류를 감지 할 수 있도록 주석을 저장해야합니다.

ERROR : 시스템에서 발생한 오류를 표시하지만,이 시스템의 기능에 영향을주지 않습니다.

경고 : 잠재적 손상 활동을 위해입니다. FATAL

: 오류, 예외 및 보안 침해 예기치.

INFO에 대한 논리 로그 만 제공 할 수 있습니다.

이 카테고리와 다른 카테고리에 포함시켜야 할 합리적인 로그를 알려주시겠습니까?

+0

http://simonwillison.net/2008/May/22/debugging/ – Chipmunk

답변

1

대답은 응용 프로그램이 수행 정확히 무엇에 크게 의존하지만, 내 기본 접근 방식은 이것이다 :

당신이 이벤트를 기록 할 준비를 할 때마다, 그냥 사건에 대해 생각하고 자신이 속한 곳이 분명있을 것입니다 . 당신의 신청서가 죽었나요? 치명적입니다. 뭔가 올바르게 작동하지 못하도록 막았습니까? 그것은 오류입니다. 으로 인해 무언가가 작동하지 않도록 할 수 있으며 이번에는 운이 좋았습니까? 경고 야. 아무도 신경 안 쓸까? 정보. 그렇지 않으면 여전히 로그해야 할 경우 디버깅 용도 여야합니다.

특정 상황에서는 사용자 동작 만 기록하려고하는 것처럼 들릴 수 있습니다. 이 경우 치명적일 수있는 유일한 작업은 실행 취소 옵션을 제공하지 않는 작업입니다 (또는 사용자가 피아노 벤치를 주문할 수 있고 강력한 로프 길이를 주문할 수 있다면 신청). 또한 디버그 수준의 로그가 사용자 동작에서 발생한다고 상상할 수도 없습니다. 이 때문에 사용자 동작 외에 코드 수준 이벤트를 로깅한다고 가정합니다.

FATAL :이는 응용 프로그램이 실제로 충돌 할 때 로그에 나타납니다, 그리고 아마도 함께 500 개 응답해야한다. 프로세스가 다르게 죽었을 때만 catch-all에서 wsgi 응용 프로그램 내에서 이들을 생성 할 수 있습니다.

오류 : 가능성이 http 오류 응답에 묶여 있습니다. 이것은 일반적으로 응용 프로그램 외부의 내용으로 인해 발생하는 오류입니다. 코드에서 발생하는 일이 예상되어 < = 경고 수준이거나 예상치 못한 치명적입니다.오류는 404에서 사용자가 오타를 만들거나 양식 제출시 유효성 검사 오류 또는 인증 오류 일 수 있습니다. 다른 방향에서 사용자가 접촉하는 원격 웹 서비스 또는 운영 체제의 IO 오류로 인해 오류가 반환 될 수 있습니다.

경고 : 치신하지 않습니다,하지만 당신은 그것을 유지하는 경우 그것이 당신을 물지 수있는 것들에 대한. 예를 들어 기본값 (시간대, 문자 인코딩 등) 때문에 사용되지 않는 api와 어디서나 작동하는 부분 만 사용하고 있습니다. 특정 입력 값으로 인해 과거에 기한을 설정하는 것과 같은 경고가 발생할 수도 있습니다.

정보 : 일반적이고 건강한 작동. (? 새 프로젝트 또는 작업) 누군가가, 데이터베이스 행을 만든 계정을 생성, 또는 밖으로, 소켓이 성공적으로 열렸다 기록 등

DEBUG :는 말한다 그냥 무슨. 코드가 올바르게 작동하면 보통 꺼지게되는 출력. 메소드 입력/종료, 객체 인스턴스화, 코드의 여러 지점에서 필드 값, 카운터. 프로그램이 왜 지금 당장 부서지고 있는지 알아 내야합니다.

+0

고맙습니다. 이것은 정확하게 내가 필요로했던 것이었다! – chamini2

관련 문제