NLog未找到或加载配置文件。

5
我正在编写一个应用程序,使用Ninject创建一个日志工厂的实例,该工厂可用于创建Nlog记录器。我有自己的Logger类,它包装了Nlog Logger类。
我有一个IOC项目来处理注入,以及一个托管LoggerFactory和Logger类的Logging项目。
我想要这样做的原因是拥有一个日志配置,可以被所有其他项目共享,而不必在每个项目中单独包含Nlog dll和config。
一切都构建和运行得很好,但当LoggerFactory来创建一个记录器时...
public ILogger GetLogger<T>()
{
    NLog.Logger nLogLogger = NLog.LogManager.GetLogger(typeof(T).ToString());

    return new Logging.Logger(nLogLogger);
}

配置为空,这表明NLog.dll没有找到NLog.config文件。
NLog.LogManager.Configuration 

我按照指示将NLog.config重命名为NLog.dll.nlog并复制到bin目录中,我可以看到它与NLog.dll一起。

根据Nlog文档,这应该足够http://nlog-project.org/wiki/Configuration_file,但它没有被发现。"在NLog.dll所在的目录中放置NLog.dll.nlog"

我将NLog.dll.nlog文件标记为内容,并将copyToLocal设置为true。

感谢任何帮助 Neil

1个回答

10
我今天早上设法使这个工作起来了。
有两个正在运行的项目使用日志记录,一个是MVC应用程序,另一个是WEBAPI应用程序。问题是当构建解决方案时,NLog.config文件被复制到应用程序的BIN文件夹中。配置文件需要与web.config文件位于项目根目录下。
为了解决这个问题,我在Logging项目上创建了一个后期构建事件,将配置文件复制到MVC应用程序和WEBAPI应用程序的项目根目录中。
现在日志记录正常工作了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接