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

JSc*_*rtz 8 c# nlog

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

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

  1. 有没有办法为我的所有项目都有一个配置文件?
  2. 这样做安全吗?将nLog登录访问同一文件的每个项目不会导致争用问题?nLog是否已正确处理此问题?

或者我最好将nLog包装在我的静态Logger.dll中(奇怪但要做也会工作)并继续像我今天在我的应用程序中做的事情一样?

谢谢,

wag*_*ghe 7

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

  • 如果您想在单个解决方案中跨多个应用程序共享 NLog.config 文件,有什么建议?例如一个 web 项目和一个 WCF 项目。 (2认同)