2009-07-15 2 views
7

다음 수신기는 Trace.WriteLine이 호출 될 때 이벤트 항목을 만듭니다. 소스가 존재하지 않으면 기본 로그 채널 인 'Application'에 소스를 생성합니다. 다른 기본 로그 채널을 지정하고 싶지만 45 분 동안 검색 한 후에도 해결책을 찾지 못하는 것 같습니다. 어떤 아이디어?EventLogTraceListener가 특정 로그에 생성되도록 지시하는 방법

<configuration> 
    <system.diagnostics> 
    <trace autoflush="false" indentsize="4"> 
     <listeners> 
     <add name="myListener"    
      type="System.Diagnostics.EventLogTraceListener" 
      initializeData="Source">   
     </add> 
     </listeners> 
    </trace> 
    </system.diagnostics> 
</configuration> 

답변

3

구성을 통해 확신 할 수없는 항목입니다.

EventLogTraceListener가 생성자의 매개 변수로 다른 이벤트 로그를 허용하더라도. 안타깝게도 클래스는 봉인되어있어 단순히 파생되지 않아 생성자에 대해 다른 값을 전달할 수 없습니다.

비록이 접근 방식을 따르고 자신 만의 클래스를 만들 수 있지만 (상당히 간단하게 보입니다). 그런 다음 설정에서 해당 유형을 참조하십시오. http://weblogs.asp.net/psteele/archive/2006/02/23/438936.aspx

-1

이 블로그 게시물에서 이것에 대한 해결책을 찾을 수 있습니다 : 그것은 정말 작동

http://weblogs.asp.net/psteele/438936

을!

+1

당신은 당신의 대답 게시물에 필수적인 부분을 넣고 참조로 링크를 추가해야합니다. –

0

첫 번째 코드 줄에서 수신기를 다시 지정할 수 있습니다. 그것은 여전히 ​​기반 구성, 그래서

Trace.Listeners["MyListener"].Attributes["EventLog"] = ConfigurationManager.AppSettings["MyCustomEventLogName"]; 

은 설정 파일의 <appSettings> 섹션에 저장 할 수 있습니다

<appSettings> 
    <add key="MyCustomEventLogName" value="CustomEventLogName" /> 
</appSettings> 
관련 문제