0

엔터프라이즈 라이브러리를 사용하여 두 개의 추적 수신기를 사용하도록 설정하여 이벤트 로그와 로그 파일에 로그인했습니다.프로그래밍 방식으로 엔터프라이즈 라이브러리의 추적 수신기로 전환

프로그래밍 방식으로 한 번에 하나의 로그에만 로그온하도록 선택할 수 있습니까 (예를 들어 이벤트 로그에 몇 번 로그하고 파일을 몇 번 로그하려는 경우).

<configuration> 
    <configSections> 
    <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" /> 
    </configSections> 

    <loggingConfiguration name="" tracingEnabled="true" defaultCategory="General"> 
    <listeners> 
     <add name="Event Log Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     source="Enterpriselibrary" formatter="Text Formatter" log="TestLog" 
     machineName="." traceOutputOptions="None" /> 
     <add name="Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     fileName="C:\AER\test.log" formatter="Text Formatter" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack" /> 
    </listeners> 
    <formatters> 
     <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     template="Timestamp: {timestamp}{newline}&#xA;Message: {message}{newline}&#xA;Category: {category}{newline}&#xA;Priority: {priority}{newline}&#xA;EventId: {eventid}{newline}&#xA;Severity: {severity}{newline}&#xA;Title:{title}{newline}&#xA;Machine: {localMachine}{newline}&#xA;App Domain: {localAppDomain}{newline}&#xA;ProcessId: {localProcessId}{newline}&#xA;Process Name: {localProcessName}{newline}&#xA;Thread Name: {threadName}{newline}&#xA;Win32 ThreadId:{win32ThreadId}{newline}&#xA;Extended Properties: {dictionary({key} - {value}{newline})}" 
     name="Text Formatter" /> 
    </formatters> 
    <categorySources> 
     <add switchValue="All" name="General"> 
     <listeners> 
      <add name="Event Log Listener" /> 
      <add name="Flat File Trace Listener" /> 
     </listeners> 
     </add> 
    </categorySources> 
    <specialSources> 
     <allEvents switchValue="All" name="All Events" /> 
     <notProcessed switchValue="All" name="Unprocessed Category" /> 
     <errors switchValue="All" name="Logging Errors &amp; Warnings"> 
     <listeners> 
      <add name="Event Log Listener" /> 
     </listeners> 
     </errors> 
    </specialSources> 
    </loggingConfiguration> 
+0

어떤 도움 감사합니다 .. 도와주세요 ... – user2020710

답변

2

물론 각기 다른 카테고리를 만들고 각 카테고리에 개별 추적 수신기를 연결하십시오. 그런 다음 코드에서 LogEntry가 로깅 할 범주를 지정하면됩니다. 그래서 같이 :

<categorySources> 
    <add switchValue="All" name="Category"> 
    <listeners> 
     <add name="Event Log Listener" /> 
    </listeners> 
    </add> 
    <add switchValue="All" name="AnotherCategory"> 
    <listeners> 
     <add name="Flat File Trace Listener" /> 
    </listeners> 
    </add> 
</categorySources> 

를 다음 프로그램 로그 항목을 직접 :

당신의 범주를 정의

LogWriter.Write("Log entry through a specific Category to the Event Log", "Category"); 
LogWriter.Write("Log entry through another Category to a file", "AnotherCategory"); 
관련 문제