C# 如何以编程方式添加 system.diagnostics 源侦听器?

问题描述 投票:0回答:1

如何以编程方式执行以下操作?我们希望能够从 UI 设置屏幕将其打开,并且不希望需要管理员权限来更新 App.config 文件。谢谢你

<system.diagnostics>
    <sources>
        <source name="System.ServiceModel"
                switchValue="Information, ActivityTracing"
                propagateActivity="true">
            <listeners>
                <add name="traceListener"
                     type="System.Diagnostics.XmlWriterTraceListener"
                     initializeData= "C:\Temp\WCF_UI_Trace.svclog" />
            </listeners>
        </source>
    </sources>
</system.diagnostics>
c# wcf logging
1个回答
0
投票

您需要使用以下类:XmlWriterTraceListenerTraceSource

XmlWriterTraceListener:属于 System.Diagnostics.TextWriterTraceListener.dll。它可以将一些数据写入svclog文件。 XmlWriterTraceListener 类

TraceSource:t 属于 System.Diagnostics.TraceSource.dll。它提供了一组方法和属性,使应用程序能够跟踪代码的执行并将跟踪消息与其源相关联。 TraceSource 类

 public class Service : IService
    {
    public void Test()
    {
        
        XmlWriterTraceListener TestListener = new XmlWriterTraceListener("TestListener.svclog");

        
        TraceSource TestSource = new TraceSource("TestSource");

        
        TestSource.Listeners.Add(TestListener);

        
        TestSource.Switch.Level = SourceLevels.All;

        
        TestSource.TraceEvent(TraceEventType.Information, 1, "Entering Test");

       

        TestSource.TraceEvent(TraceEventType.Information, 2, "Exiting Test");

        
        TestListener.Flush();
        TestListener.Close();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.