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()调用,效果很好。