使NLog.config文件从(d:\ dev)而不是"\ bin\debug \"加载文件

roo*_*per 16 c# configuration nlog configuration-files nlog-configuration

我在特定的DLL中使用Nlog进行日志记录.然后将DLL用于另一个应用程序(使用它动态加载System.Reflection.Assembly.LoadFrom(path + a.dll)).我手动将Nlog.dll和Nlog.config文件放在Path文件夹中,应用程序正常执行,但它不记录任何消息.

但是,当我继续并在应用程序目录(\bin\debug\)中手动放置Nlog.config文件时,会记录消息.

有人可以让我知道如何将Nlog.Config的搜索位置指向不同的目录(d:\dev)\bin\debug\.

roo*_*per 45

下面是我如何将Nlog的配置更改为指向Executing Assembly文件夹中的Nlog.config文件.

string assemblyFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
NLog.LogManager.Configuration = new NLog.Config.XmlLoggingConfiguration(assemblyFolder + "\\NLog.config", true);
Run Code Online (Sandbox Code Playgroud)

  • 你可以使用Path.Combine(assemblyFolder,"NLog.config") (6认同)

Xha*_*rze 5

请参阅NLog Wiki上的配置文件位置

基本上,NLog定位配置的方式是:

  • 标准应用程序配置文件(通常为applicationname.exe.config)
  • 应用程序目录中的applicationname.exe.nlog
  • 应用程序目录中的NLog.config
  • NLog.dll所在目录中的NLog.dll.nlog(仅当NLog不在GAC中时)
  • NLOG_GLOBAL_CONFIG_FILE环境变量指向的文件名(如果定义,仅NLog 1.0-在NLog 2.0中已删除支持)

没有其他方法可以做到这一点。

  • 有*一种方法可以做到这一点,[见上文](http://stackoverflow.com/a/16062987/11635) (2认同)