C#.Net:如何通过.Net代码读取App.config中定义的跟踪文件路径?

C#.Net:如何通过.Net代码读取App.config中定义的跟踪文件路径?,c#,enterprise-library,C#,Enterprise Library,跟踪App.Config中的文件路径,如下所示- <loggingConfiguration name="Logging Application Block" tracingEnabled="true" defaultCategory="General" logWarningsWhenNoCategoriesMatch="true"> <listeners> <add fileName="D:\trace.log" header="--

跟踪App.Config中的文件路径,如下所示-

<loggingConfiguration name="Logging Application Block" tracingEnabled="true" defaultCategory="General" logWarningsWhenNoCategoriesMatch="true">
      <listeners>
         <add fileName="D:\trace.log" header="----------------------------------------" footer="----------------------------------------" formatter="" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" traceOutputOptions="None" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="FileTraceListener" />
      </listeners>
      <formatters>
         <add template="Timestamp: {timestamp}{newline} Message: {message}{newline} Category: {category}{newline} Priority: {priority}{newline} EventId: {eventid}{newline} Severity: {severity}{newline} Title:{title}{newline} Machine: {localMachine}{newline} App Domain: {localAppDomain}{newline} ProcessId: {localProcessId}{newline} Process Name: {localProcessName}{newline} Thread Name: {threadName}{newline} Win32 ThreadId:{win32ThreadId}{newline} Extended Properties: {dictionary({key} - {value}{newline})}" type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="Text Formatter" />
      </formatters>
      <categorySources>
         <add switchValue="All" name="General">
            <listeners>
               <add name="FileTraceListener" />
            </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="FileTraceListener" />
            </listeners>
         </errors>
      </specialSources>
</loggingConfiguration>

这里我们定义了一个侦听器,即FileTraceListener。请帮我得到以下答案-

  • 如何访问跟踪路径
  • 如何将详细信息写入跟踪文件

  • 您正在使用企业库日志记录,因此要获取第一个日志记录程序,请使用以下代码:

    LoggingSettings loggingSettings = (LoggingSettings)ConfigurationManager.GetSection(LoggingSettings.SectionName);
    TraceListenerData traceListenerData = loggingSettings.TraceListeners.Get(0);
    FlatFileTraceListenerData objFlatFileTraceListenerData = traceListenerData as FlatFileTraceListenerData;
    
    string logFilePath = objFlatFileTraceListenerData.FileName; 
    

    注意:如果要获取特定的侦听器,请将
    get(0)
    替换为
    get(“平面文件跟踪侦听器”)
    等。

    我认为他特别想要
    中的值,而不是将路径作为一个新设置进行复制。这里的要求是访问跟踪路径,该路径以上述格式定义在app.config文件中,而不复制到另一个变量中。在这种情况下,上面的链接没有用处,因为本部分提供了帮助链接是如何更改定义到企业库中的日志文件的路径。在这里,我们不想改变路径。设置/获取是相同的原则?!为了让生活更轻松,我用您想要的代码片段更新了我的答案。