gpt4 book ai didi

c# - 在配置中指定条件跟踪监听器

转载 作者:行者123 更新时间:2023-11-30 17:00:19 25 4
gpt4 key购买 nike

我想在我的代码中进行如下调用:

System.Diagnostics.Trace.WriteLine("Starting XYZ...");

并将其写入配置中描述的文件:

<system.diagnostics>
<trace autoflush="true">
<listeners>
<add type="System.Diagnostics.TextWriterTraceListener" name="TextWriter"
initializeData="trace.log" />
</listeners>
</trace>
</system.diagnostics>

这很好用,除了对 WriteLine() 的现有调用之外目前正在与我添加的新代码行混淆。

如何将我的跟踪记录写入一个日志文件并保留现有的日志文件(在我修改它之前目前根本没有任何配置,我希望现有的跟踪记录按当前的方式处理)。

我知道这可以通过代码实现,但我想在配置文件中指定文件并有条件地写入它。

最佳答案

刚刚明白你的问题在问什么。编辑了我的评论。您可以像下面这样使用跟踪源:http://olondono.blogspot.com/2008/01/about-trace-listeners.html

基本上你可以像这样修改你的配置文件:

    <system.diagnostics>
<trace autoflush="true"/>
<sources>
<source name="myTraceSource"
switchName="mySwitch"
switchType="System.Diagnostics.SourceSwitch" >
<listeners>
<clear/>
<add name="textwriterListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="c:\myLog.txt" />
</listeners>
</source>
</sources>
<switches>
<add name="mySwitch" value="Warning" />
</switches>
</system.diagnostics>

然后在您的代码中您可以执行以下操作:

    // First step: create the trace source object
TraceSource ts = new TraceSource("myTraceSource");

// Writing out some events
ts.TraceEvent(TraceEventType.Warning, 0, "warning message");
ts.TraceEvent(TraceEventType.Error, 0, "error message");
ts.TraceEvent(TraceEventType.Information, 0, "information message");
ts.TraceEvent(TraceEventType.Critical, 0, "critical message");

关于c# - 在配置中指定条件跟踪监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22408460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com