简体   繁体   English

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

[英]C#.Net : How to read trace file path defined in App.config through .net code?

Trace File Path in App.Config as follows - 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>

Here we have defined one listener ie FileTraceListener. 这里我们定义了一个监听器,即FileTraceListener。 Please help me to get following answers - 请帮助我得到以下答案 -

  1. How to access the trace path? 如何访问跟踪路径?
  2. How to write details into trace file? 如何将详细信息写入跟踪文件?

You are using Enterprise Library Logging , so to get the first logger you would use this code: 您正在使用Enterprise Library Logging ,因此要获取第一个记录器,您将使用此代码:

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

string logFilePath = objFlatFileTraceListenerData.FileName; 

Note: If you want to get a specific listener replace Get(0) with Get("FlatFile TraceListener"); 注意:如果要获取特定的侦听器,请使用Get(0)替换Get(0) Get("FlatFile TraceListener"); etc. 等等

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM