从配置.NET 1.1读书的TraceListener initializedata财产财产、NET、initializedata、TraceListener

2023-09-07 09:47:23 作者:莃望,(卟破灭)

我有以下的配置文件:

 < System.Diagnostics程序>
    &所述;跟踪自动冲洗=真indentsize =1>
      <听众>
        <添加名称=dbgTraceTYPE =System.Diagnostics.TextWriterTraceListenerinitializeData =C:\ MyLogs \ MyApp的\日志\ LOGFILE.LOG/>
      < /听众>
    < /跟踪>
  < /system.diagnostics>
 

因此​​,我可以这样写的tracelisteners系列:

  TraceListenerCollection的TLC = System.Diagnostics.Trace.Listeners;
 

和从中获得的TraceListener,但问题是,我无法访问initializeData财产。只有名称,类型,IndentLevel的公共属性。

有没有什么解决办法?

解决方案

  System.Reflection.FieldInfo fInfo = OurListener.GetType()。getfield命令(initializeData,System.Reflection.BindingFlags .NonPublic | System.Reflection.BindingFlags.Instance);字符串的文件路径=(字符串)fInfo.GetValue(OurListener);
 
配置php.ini以连接mysql数据

I have the following config file:

  <system.diagnostics>
    <trace autoflush="true" indentsize="1" >
      <listeners>
        <add name="dbgTrace" type="System.Diagnostics.TextWriterTraceListener" initializeData="C:\MyLogs\MyApp\Logs\LogFile.log" />
      </listeners>
    </trace>
  </system.diagnostics>

So I can read the tracelisteners collection like this:

TraceListenerCollection tlc = System.Diagnostics.Trace.Listeners;

and get the TraceListener from it, but the problem is, that I can not access initializeData property. There are only Name, Type, IndentLevel as public properties.

Is there any workaround?

解决方案

System.Reflection.FieldInfo fInfo = OurListener.GetType().GetField("initializeData", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); string filePath = (string)fInfo.GetValue(OurListener);