최종 사용자가 클래스별로 로깅을 활성화/비활성화 할 수있는 GUI를 제공하는 로깅 라이브러리가 있습니다. 이를 통해 지원 담당자는 로그에 범람하지 않고 문제를 해결하는 데 관심있는 클래스에 대한 최종 사용자 로그인을 허용 할 수 있습니다 (이 점에 대해서는 조금 더 있지만이 질문의 목적을 위해서는 충분해야합니다) . GUI는 로깅 라이브러리를 사용하는 모든 클래스를 나열해야합니다..Net 라이브러리는 런타임에 호출 클래스를 식별 할 수 있습니까?
과거에 (Win32 응용 프로그램에서) 사용한 방법은 라이브러리 사용자가 라이브러리를 사용하는 클래스를 나열하기 위해 호출하는 레지스터 함수를 제공하는 것이 었습니다. 이것은 효과가 있지만 고통스럽고 오류가 발생하기 쉽습니다. .NET에서 지금 일하고있는 것을 감안할 때 런타임에 직접 이러한 클래스 목록을 얻을 수 있으므로 등록하지 않아도 GUI를 채울 수 있기를 바랍니다.
이 방법이 있습니까?
'Assembly.GetTypes' 메소드를 사용할 수 있습니까? http://msdn.microsoft.com/en-us/library/system.reflection.assembly.gettypes.aspx 사용자가 기록해야한다는 것을 나타내는 특성을 가진 클래스를 장식 할 수 있습니까? 나는 당신의 디자인이 클래스들 사이를 구별하는 것이 무엇인지 모르겠다. –
로그를 검사하고 로그 메시지를 방출 한 클래스의 개별 목록을 추출하는 것이 더 좋지 않을까요? 로깅 프레임 워크 자체가 특정 클래스에 대한 로그 메시지를 식별하고 중지해야하는지 아니면 프런트 엔드가 필터 만 적용해야합니까? – MattDavey
@MattDavey는 내가 선호하는 것이 무엇인지에 동의한다. 훨씬 간단하다는 점을 제외하면, 적어도 거기에는 문제가있을 것이고, 다시 일어날 때까지 기다릴 필요가 없을 것이다. 그러나 Chris Sinclair와 같이해야한다면, loggable을 만들기 위해 속성을 사용하고 어떤 loggable 물건이 기록되었는지 확인하는 설정 파일을 사용합니다. –