我有以下的配置文件:
< 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);
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);