3

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

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

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

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

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

4

1 回答 1

4

您在两者之间进行选择SingletonStatic记录的方式与在两者之间进行选择的方式相同:您希望能够覆盖方法(或使用Logging接口)吗?如果你使用单例,你就有机会重写方法来改变功能。您甚至可以将行为抽象到接口后面。

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

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

于 2012-12-10T20:28:25.940 回答