【问题标题】:Trace listener not writing trace information跟踪侦听器未写入跟踪信息
【发布时间】:2012-02-17 06:51:13
【问题描述】:
public sealed class Logger
{
    private static TraceSource myTraceSource;

    private Logger()
    {
    }

    public static TraceSource Create()
    {
        if (myTraceSource == null)
            return myTraceSource = new TraceSource("myTraceSource");
        else
            return myTraceSource;
    }

    public static void WriteInfo(string message)
    {
        myTraceSource.TraceEvent(TraceEventType.Information, 0, message);
        myTraceSource.Flush();
    }

    public static void WriteError(Exception ex)
    {
        myTraceSource.TraceEvent(TraceEventType.Error, 1, ex.Message);
        myTraceSource.Flush();            
    }

    public static void WriteError(string message)
    {
        myTraceSource.TraceEvent(TraceEventType.Error, 1, message);
        myTraceSource.Flush();
    }

    public static void WriteWarning(string message)
    {
        myTraceSource.TraceEvent(TraceEventType.Warning, 2, message);
        myTraceSource.Flush();
    }

    public static void AddListener(TraceListener listener)
    {
        myTraceSource.Listeners.Add(listener);
    }

    public static void Close()
    {
        if (myTraceSource != null)
        {
            myTraceSource.Flush();
            myTraceSource.Close();
        }
    }       
}

下面是初始化跟踪源和添加监听的代码

Logger.Create();
TextWriterTraceListener myTextListener = new TextWriterTraceListener(LogCompletePath);
Logger.AddListener(myTextListener);
Logger.WriteError("error");

请注意,我没有将 SytemDiagnostic 标记放在 appconfig 中,因为我想在代码中这样做。

【问题讨论】:

    标签: c#-4.0 system.diagnostics tracesource


    【解决方案1】:

    在另一个论坛上得到了答案。我忘了提到源级别,默认情况下它设置为关闭

     return myTraceSource = new TraceSource("myTraceSource", SourceLevels.All); 
    

    【讨论】:

    • 如果有人尝试使用 Mono 框架执行此操作,则 TraceSource 构造函数中似乎存在错误,因此您提供的 SourceLevels 可能无法使用。作为一种解决方法,请在构建后设置 myTraceSource.Switch.Level = SourceLevels.All。 (我使用的是 Unity 4.1 游戏引擎附带的 Mono 2.6 的修改版本。)
    • 看来我不是第一个发现 TraceSource 构造函数错误的人:mono.1490590.n4.nabble.com/Bug-in-TraceSource-td3201651.html
    猜你喜欢
    • 2017-09-24
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 2019-10-02
    相关资源
    最近更新 更多