在EntLib中登录/注销

问题描述:

是否有配置文件中的设置可以在EntLib中打开或关闭日志记录。 有文章显示如何以编程方式完成此操作,但我有兴趣通过配置文件完成此操作。在EntLib中登录/注销

我使用的EntLib 5.

这里是配置

<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.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
      listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
      source="Enterprise Library Logging" formatter="Text Formatter" 
      log="" machineName="." traceOutputOptions="None" /> 
     <add name="Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
      listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
      fileName="c:\\Log\\wclog.log" header="" 
      formatter="Text Formatter" traceOutputOptions="DateTime, Timestamp" /> 
    </listeners> 
    <formatters> 
     <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
      template="Timestamp:{timestamp} Method: {title}, {category} {message}" 
      name="Text Formatter" /> 
    </formatters> 
    <categorySources> 
     <add switchValue="All" name="General"> 
      <listeners> 
       <add name="Flat File Trace Listener" /> 
      </listeners> 
     </add> 
    </categorySources> 
    <specialSources> 
     <allEvents switchValue="All" name="All Events"> 
      <listeners> 
       <add name="Flat File Trace Listener" /> 
      </listeners> 
     </allEvents> 
     <notProcessed switchValue="All" name="Unprocessed Category"> 
      <listeners> 
       <add name="Flat File Trace Listener" /> 
      </listeners> 
     </notProcessed> 
     <errors switchValue="All" name="Logging Errors &amp; Warnings"> 
      <listeners> 
       <add name="Flat File Trace Listener" /> 
      </listeners> 
     </errors> 
    </specialSources> 

问候。

+0

我在下面回答,但我想知道为什么要通过配置文件关闭它们?如果这是因为它是一个测试或开发环境,那么您可能需要查看增量和不同的环境配置文件。一旦你习惯了它们,它们就非常甜蜜:http://msdn.microsoft.com/en-us/library/ff664395(v=pandp.50).aspx – Mark 2012-08-01 15:08:30

您可以设置switchValue你categorySources为“关”

+0

你好,我已经添加了配置文件。 switchValue在这里是'All',但我尝试'关'。仍然不起作用。 – Codehelp 2012-07-25 08:37:12

+0

因此,您将它设置在平面文件跟踪监听器上,并且它仍在写入C:\ Log \ wcLog.log?这是一个Web应用程序还是不同的应用程序类型?另外,您是否尝试将顶部的tracingEnabled属性设置为false? – Tuan 2012-07-25 15:15:45

的虽然不理想,这里是应该工作的简单方法 - 注释掉听众:

<categorySources> 
    <add switchValue="All" name="General"> 
     <listeners> 
      <!-- <add name="Flat File Trace Listener" /> --> 
     </listeners> 
    </add> 
</categorySources> 
<specialSources> 
    <allEvents switchValue="All" name="All Events"> 
     <listeners> 
      <!-- <add name="Flat File Trace Listener" /> --> 
     </listeners> 
    </allEvents> 
    <notProcessed switchValue="All" name="Unprocessed Category"> 
     <listeners> 
      <!-- <add name="Flat File Trace Listener" /> --> 
     </listeners> 
    </notProcessed> 
    <errors switchValue="All" name="Logging Errors &amp; Warnings"> 
     <listeners> 
      <!-- <add name="Flat File Trace Listener" /> --> 
     </listeners> 
    </errors> 
</specialSources> 

有不同的方法来禁用日志记录。如前所述一个是设置类别开关值设置为“关”:

<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.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
      listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
      source="Enterprise Library Logging" formatter="Text Formatter" 
      log="" machineName="." traceOutputOptions="None" /> 
     <add name="Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
      listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
      fileName="c:\\Log\\wclog.log" header="" 
      formatter="Text Formatter" traceOutputOptions="DateTime, Timestamp" /> 
    </listeners> 
    <formatters> 
     <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
      template="Timestamp:{timestamp} Method: {title}, {category} {message}" 
      name="Text Formatter" /> 
    </formatters> 
    <categorySources> 
     <add switchValue="All" name="General"> 
      <listeners> 
       <add name="Flat File Trace Listener" /> 
      </listeners> 
     </add> 
    </categorySources> 
    <specialSources> 
     <allEvents switchValue="All" name="All Events"> 
      <listeners> 
       <add name="Flat File Trace Listener" /> 
      </listeners> 
     </allEvents> 
     <notProcessed switchValue="All" name="Unprocessed Category"> 
      <listeners> 
       <add name="Flat File Trace Listener" /> 
      </listeners> 
     </notProcessed> 
     <errors switchValue="All" name="Logging Errors &amp; Warnings"> 
      <listeners> 
       <add name="Flat File Trace Listener" /> 
      </listeners> 
     </errors> 
    </specialSources> 

您还可以通过设置跟踪监听器本身为“关”的筛选器属性禁用各个跟踪侦听器。

可能在全球范围内禁止采伐的最简单的方法是使用启用日志筛选:

<logFilters> 
     <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Filters.LogEnabledFilter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
      enabled="false" name="Logging Enabled Filter" /> 
    </logFilters> 

然后,只需设置“真”或“假”启用或禁用日志记录。过滤器还具有在“日志记录管道”中首先执行的好处,所以它应该比将各个跟踪侦听器设置为“关闭”更好。