2008-10-07 5 views

답변

0

로깅 관행에 대해 몇 가지 측면을 추가하고 싶습니다.

  1. 개발 로깅에서 기능 로깅을 분리하는 것이 좋습니다. 프로덕션 환경에서 기능적 로깅은 DBMS 또는 기타 리소스를 포함 할 수 있습니다. 실제 로거에 래퍼를 작성하여이 작업을 수행 할 수 있습니다.
  2. 다중 사용자 환경에서 로그 문은 읽기 어렵고 고유 한 사용자 세션 ID를 가지며 개발 단계에서 기록됩니다. 그런 다음 간단한 perl 스크립트가 섹션을 필터링하여 디버깅을 더 간단하게 만들 수 있습니다. 위에 설명 된 래퍼 클래스를 사용하면 쉽게 수행 할 수 있습니다.
  3. 래퍼 클래스를 사용하면 하나의 특정 로깅 API에 묶이지 않아도됩니다.
  4. 가능하면 로깅에 대한 애스펙트 지향 접근 방식을 시도하십시오. 이는 기본적으로 포인트 컷 (메소드 입력/종료 지점을 쉽게 다룰 수 있습니다)을 사용하여 수행됩니다. 코드 정리가 쉬울 것입니다.
3

라이브러리 : 그것을 디버깅을위한 낮은 기술 방법입니다

코드에 로그 문을 삽입 : Log4JLog4Net의 Log4j 사이트에서

(각각 Java 및 .NET 용). 디버거를 항상 사용할 수있는 것은 아니기 때문에이 방법이 유일한 방법 일 수도 있습니다. 분산 응용 프로그램의 경우가 종종 있습니다.

한편 사람들은 로그 문이 소스 코드를 오염시키고 가독성을 떨어 뜨린다 고 주장합니다. (우리는 그 반대가 사실이라고 믿는다). 선행 처리기를 사용할 수없는 Java 언어에서 로그 문은 로깅이 꺼진 경우에도 코드 크기를 늘리고 속도를 줄입니다. 합리적으로 크기가 조정 된 응용 프로그램에는 수천 개의 로그 문이 포함될 수 있으므로 속도가 특히 중요합니다.

log4j를 사용하면 응용 프로그램 바이너리를 수정하지 않고도 런타임에 로깅을 활성화 할 수 있습니다. log4j 패키지는 이러한 명령문이 성능 비용을 들이지 않고 선적 된 코드로 유지 될 수 있도록 설계되었습니다. 로깅 동작은 응용 프로그램 바이너리를 건드리지 않고 구성 파일을 편집하여 제어 할 수 있습니다.

로깅은 개발자에게 응용 프로그램 오류에 대한 자세한 컨텍스트를 제공합니다. 반면에 테스트는 애플리케이션에 대한 품질 보증 및 확신을 제공합니다. 로깅 및 테스트를 혼동해서는 안됩니다. 그들은 보완 적입니다. 로깅을 현명하게 사용하면 필수 도구로 사용할 수 있습니다. Log4X 로그를 볼 수

1

도구 : 다른 질문이에 꽤 많은 논란이 있었다 ChainSaw

관련 문제