5

我正在编写一个应用程序并使用 Ninject 创建一个可用于创建 Nlog Loggers 的 Logging 工厂实例。我有自己的 Logger 类,它包装了 Nlog Logger 类

我有一个处理注入的 IOC 项目和一个托管 LoggerFactory 和 Logger 类的 Logging 项目。

我想要这样做的原因是让所有其他项目共享一个日志记录配置,而不是必须分别在每个项目中包含 Nlog dll 和配置。

这一切都构建并运行良好,但是当 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。

感谢尼尔的任何帮助

4

1 回答 1

9

我今天早上设法让这个工作

有两个正在运行的项目使用日志记录——一个 MVC 应用程序和一个 WEBAPI 应用程序。问题是在构建解决方案时 NLog.config 文件被复制到应用程序的 BIN 文件夹中。配置文件需要与 web.config 文件一起位于项目根目录中。

为了解决这个问题,我在 Logging 项目上创建了一个构建后事件,以将配置文件复制到 MVC 应用程序和 WEBAPI 应用程序的项目根目录。

日志记录现在工作正常。

于 2012-05-30T09:51:13.070 回答