繁体   English   中英

C#库记录

[英]C# library logging

我已经使用StreamWriter实现了自己的C#记录器类。 在我的应用程序中,我有此记录器的公共静态实例,并且能够从应用程序代码的任何部分记录任何内容,例如:

Program.logger.Write(LogLevel.Info, "Log test");

我也有一些在应用程序中使用的C#dll库。 问题是,我是否可以将日志记录添加到库函数中并以某种方式将其链接到应用程序记录器? 我知道Trace类,但是我不知道如何链接它。 我想我必须跟踪库函数,然后在应用程序代码中侦听这些跟踪,但是如何?

我不想使用任何第三方库进行日志记录。

有很多方法可以解决您的问题。 在这里,我描述了如何使用Trace类解决该问题,因为这是您在问题中提到的选项。 请注意,这可能不是最佳方法。

首先创建一个自定义的TraceListener

public class MyTraceListener : TraceListener
{
    public override void Write(string message)
    {
        //Here consume your static logger
    }

    public override void WriteLine(string message)
    {
        //Here consume your static logger
    }
}

然后,在应用程序的入口点,像这样注册侦听器:

Trace.Listeners.Add(new MyTraceListener());

现在,如果有任何代码(甚至是库中的代码)也可以使用Trace.WriteLine如下所示:

Trace.WriteLine("From library");

您将能够收听并将其转发到您的自定义记录器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM