C# 消息未写入文件,我做错了什么?
这是密码C# 消息未写入文件,我做错了什么?,c#,trace,C#,Trace,这是密码 class Program { public static TraceSource TS = new TraceSource("myTraceSrc", SourceLevels.All); static void Main(string[] args) { TS.TraceInformation("Hello Trace from Main"); } } 这是配置文件 <system.diagnostics> &
class Program
{
public static TraceSource TS = new TraceSource("myTraceSrc", SourceLevels.All);
static void Main(string[] args)
{
TS.TraceInformation("Hello Trace from Main");
}
}
这是配置文件
<system.diagnostics>
<sources>
<source name="myTraceSrc" switchName="switch1">
<listeners>
<add type="System.Diagnostics.TextWriterTraceListener" name="myLocalListener" initializeData="c:\Test.Log" />
<add name="consoleListener" />
</listeners>
</source>
</sources>
<sharedListeners>
<add type="System.Diagnostics.ConsoleTraceListener" name="consoleListener" traceOutputOptions="None" />
</sharedListeners>
<switches>
<add name="switch1" value="all" />
</switches>
</system.diagnostics>
消息显示在控制台上,但文件中没有任何内容。我做错了什么?你试过打电话了吗?试着像上面描述的那样手动创建
TextWriterTraceListener
。那么有没有办法让跟踪消息立即写入而不是调用Flush()呢每次?@imak:我想你想要
,但老实说,我自己没有使用跟踪侦听器。@Jon:据我所知,当你使用跟踪时,自动刷新是可用的。在tracesource的情况下,我看不出它对源、侦听器或交换机可用。不知道该把这个放在哪里property@imak:对。。。我也不确定,恐怕:(@Jon实际上只是在前面加了一行,删除了Flush()调用,效果很好。