我尝试使用两个不同的日志级别设置MySource跟踪源。 FileLog应该跟踪所有内容(详细),系统事件日志应该只跟踪错误。
以下设置似乎已杀死日志记录到FileLog。我做错了什么?
<sources>
<source name="MySource" switchName="MySource.Switch">
<listeners>
<add name="FileLog"/>
</listeners>
</source>
<source name="MySource" switchName="MySource.SystemSwitch">
<listeners>
<add name="EventLog"/>
</listeners>
</source>
</sources>
<switches>
<add name="MySource.Switch" value="Verbose"/>
<add name="MySource.SystemSwitch" value=Error"/>
</switches>
答案 0 :(得分:6)
每个源只包含一个<source>
,有多个侦听器,然后在侦听器上添加过滤器,如下所示:
<configuration>
<system.diagnostics>
<sources>
<source name="Service" switchValue="Information">
<listeners>
<clear />
<add name="RollingFile" />
<add name="EventLog" />
</listeners>
</source>
</sources>
<sharedListeners>
<add name="RollingFile"
type="Essential.Diagnostics.RollingFileTraceListener, Essential.Diagnostics"
initializeData="{ApplicationName}-{DateTime:yyyy-MM-dd}.log"
template="{LocalDateTime:yyyy-MM-dd HH:mm:ss.fff} {Message}{Data}"
/>
<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="YourAppName">
<filter type="System.Diagnostics.EventTypeFilter" initializeData="Warning" />
</add>
</sharedListeners>
</system.diagnostics>
</configuration>