2009-09-22 3 views
1

내 C# 응용 프로그램에서 로깅 코드를 어디에 배치해야하는지 궁금합니다.로깅 코드를 배치 할 곳

myapp.exe -arg1과 같은 프로그램 인수를 기록하려고한다고 가정 해 봅시다.

인수는 인수를 구문 분석하는 실제 팩토리 클래스에 도달하기 전에 (실제로는 단 하나의 인수 만 있음) main()이있는 진입 점 클래스에서 전달되며 인수를 기반으로 객체를 만듭니다.

인수 (계층 구조의 맨 아래)를 구문 분석하는 팩토리가 인수 로깅을 담당해야합니까? 아니면 main (계층 구조의 맨 위)에 인수를 기록해야합니까?

팩토리 클래스가 올바른 장소라고 생각하지만, 코드를 기록하기위한 올바른 위치가 어디인지에 대해 자주 의심스럽고 재사용 할 수있는 좋은 사례를 고맙게 생각합니다.

답변

1

사용자 정의 규칙으로 나는 항상 로그를 수행하는 감각을 가지고 있지만 (너무 자주 호출되는 작은 메소드 로깅을 피하기 위해) 콜 스택 (callstack)으로 로그를 작성하려고합니다. 너가 너무 아래로 벌채하고 있기 때문에 너가 약간 의미를 풀면 너는 항상 확장 한 정보를 조금 더 늘릴 수 있는다.

2

공장에 로그인해야한다고 생각합니다.

코드를 다른 환경에서 나중에 사용하도록 마이그레이션하면 main()이 존재하지 않을 수 있습니다. 그리고 모든 main()이이 정보를 전달합니다. 따라서 ASP 응용 프로그램을 만들고 동일한 로깅 세부 정보를 유지하려는 경우 팩토리 메서드는 인수를 기반으로 만들어지는 항목에 대한 결정을 내리기 때문에 유용합니다.

관련 문제