单例或静态记录器?

我当前的C#应用​​程序是单个可执行文件(EXE)和一些DLL(所以多个二进制文件),我想创建一个LOGGER(一些简单的自定义记录器,无论从哪里调用,都会写入单个文本文件 – 这个应该在所有二进制文件(exe和dll)中可用 – 请注意它是一个单线程应用程序。

现在我有一个DLL(Logger),它有一个类(Log),带有一个记录的方法(trace),每个项目都添加了对这个DLL(Logger)的引用并创建了自己的实例(传入一个文件名)和然后调用.Trace(…)函数 – 工作正常…

但我宁愿不必创建许多不同的跟踪文件(每个项目最少一个),每次看起来重复时都必须创建一个新的Logger实例……所以我正在研究创建一个STATIC记录器类或使用SINGLTON。 ..我不确定哪个最好,为什么……

我希望有人可以指出我正确的方向,创建一个记录器类(它将是自己的DLL)的最佳方法是什么,将被许多项目(引用)使用,他们都应该写入相同的日志文件……?

任何帮助将非常感激。 谢谢,

您可以选择SingletonStatic logger,就像在两者之间选择一样:您是否希望能够覆盖方法(或使用Logging接口)? 如果使用单例,则可以重写方法以更改function。 您甚至可以在界面后面抽象出行为。

使用静态类,您现在并永远与该类绑定,任何更改都会影响每个人。

在处理我自己的系统时,我已经转向单例实例化对象。 它提供了静态类不具备的灵活性。