2008-10-16 4 views
6

내장 TraceSource 및 TraceListener 클래스를 시작 했으므로 TraceSources 및 TraceListeners와 독립적으로 이벤트의 출력 형식을 수정하고 싶습니다. TraceListeners가 자신의 서식을 적용한 것으로 보입니다. 내가 사용하는 모든 TraceListener에 대해 새로운 클래스를 만들지 않고 서식을 완전히 변경할 수 있습니까?.Net TraceSource/TraceListener 프레임 워크에는 log4net의 포매터와 비슷한 것이 있습니까?

답변

5

엔터프라이즈 라이브러리 로깅 응용 프로그램 블록 (http://msdn.microsoft.com/en-us/library/cc309506.aspx)은 .Net TraceSource 및 TraceListener 클래스를 기반으로하므로 (프로젝트에 넣을 수 있으므로 작동 할 수 있음) 메시지 작성기가 지원됩니다 web.config (또는 app.config)에서 구성 할 수 있습니다.

+0

EntLib의 성능이 매우 좋지 않으므로 사용하지 않는 것이 좋습니다. 비교는 여기 : https://essentialdiagnostics.codeplex.com/wikipage?title=Comparison&referringTitle=Guidance –

0

TraceWrite() 또는 WriteLine() 메서드를 직접 사용하여 TraceListener에 텍스트를 삽입 할 수 있습니다.

+1

질문은 TraceSource가 아니라 TraceSource에 관한 것입니다. – agarcian

2

이 방법은 늦지 만 log4net, NLog 및 LAB에서 사용할 수있는 형식과 비슷한 형식을 지원하는 TraceSource/TraceListener 솔루션을 찾고있는 후발자의 경우 Ukadc.Diagnostics을 시도 할 수 있습니다. Ukadc에서 제공하는 TraceListeners는 형식 지정 문자열을 사용하여 구성 할 수 있으며 추적이 수신기에 기록 될 때 적용됩니다. 자신 만의 토큰을 작성하여 서식 지정 문에 추가 할 수도 있습니다. 예를 들어, 값을 검색 할 때마다 단순히 카운터를 증가시키는 재미있는 것을 썼습니다. 결과는 로그 파일에서 각 행이 순차적으로 증가하는 숫자를 수신한다는 것입니다. Trace.CorrelationManager.LogicalOperationStack의 정보를 출력에 추가 할 수 있도록 다른 것을 작성했습니다.

나는 그 일을하는 컴퓨터에 쉽게 접근 할 수 없거나이 예제를 게시 할 것입니다.

0

여기서 끝나고 TraceListeners에 대한 사용자 지정 서식을 찾고있는 사용자의 경우 Essential.Diagnostics https://essentialdiagnostics.codeplex.com/ (공개 : 프로젝트에 참여 중입니다)도 있습니다.

원래 질문에 대답하기 위해 TraceListener는 구성에서 사용자 지정 속성을 받아 들일 수 있으므로 구성을 기반으로 여러 형식을 처리하는 하나의 TraceListener를 작성할 수 있습니다.이 경우 여러 항목을 작성하는 것보다 유연 할 수 있습니다.

Essential.Diagnostics에는 사용자 정의 형식 문자열을 지원하는 ColoredConsoleTraceListener와 RollingFileTraceListener가 있으며 다양한 형식 값을 사용할 수 있습니다.