与多个项目共享nlog配置和正确的线程安全方式写入同一个日志文件?

时间:2012-12-13 06:42:18

标签: c# nlog

我的程序包含一个EXE和6个DLL(当然每个人都引用所有人),我目前有一个原始的静态日志记录类(Logger),它在自己的DLL(Logger.dll)中,我作为参考添加我的每个项目都使用......但是我没有重新发明轮子,而是想用nLog替换它。

问题是我似乎无法弄清楚我的所有项目如何共享相同的nLog配置文件(我希望所有日志记录到SAME文件,我不想为每个项目定义配置文件)。

  1. 有没有办法为我的所有项目提供单个配置文件?
  2. 这样做安全吗?将nLog登录访问同一文件的每个项目不会导致争用问题? nLog是否已正确处理此问题?
  3. 或者我最好将nLog包装在我的静态Logger.dll中(做的很奇怪,但也可以工作)并且在我的应用程序中继续做我今天做的事情?

    谢谢,

1 个答案:

答案 0 :(得分:7)

NLog应该处理你想要的东西。 NLog.config文件应用于应用程序(EXE)级别。因此,如果在NLog.config中配置NLog,则在应用程序启动时将读取配置。所有类,无论是在EXE中还是在您的DLL中,当它们从NLog检索记录器时,都将返回根据EXE级别NLog.config文件配置的记录器。