来自内部nuget库包的Nlog

时间:2014-06-04 16:00:34

标签: c# asp.net nuget nlog

我写了一个c#库项目,我添加了nlog。我正在利用日志文件。

然后我使用带有以下文件的Nuget Package Explorer为该库创建了一个nuget包:

-lib
    --NLog.config
    --NLog.dll
    --Nlog.xml
    --MyLibrary.dll
    --MyLibrary.dll.config

然后我将这个nuget包安装到ASP.NET Web表单项目中。我已在此Web表单项目上安装了NLog,并确认日志记录对此项目正常工作。

我的问题是我没有看到我通过nuget安装的库项目的任何日志消息。 Web表单项目层次结构如下所示:

-WebFormsProject
    --Default.aspx
    --logs.log
    --Default.aspx
    --Nlog.config
    --bin
        ---NLog.dll
        ---Nlog.xml
        ---MyLibrary.dll
        ---WebFormsProject.dll

从MyLibrary登录以在WebFormsProject中工作,我缺少什么?

2 个答案:

答案 0 :(得分:1)

很可能你在nlog.config中犯了一些错误但是......

请检查您使用的NLog.dll版本是否相同(因此,使用您的WebFormsProject构建MyLibrary.dll的版本)。

  

请注意,从NLog 3.0版开始,对dotnetfx20的支持已被删除。现在需要使用dotnetfx35来使用最新的NLog。

如果这对您没有帮助,请尝试其他方法来检测出错了什么。例如,创建一个简单的控制台应用程序,您可以在其中使用新创建的nuget包。你有记录在那里工作吗?

答案 1 :(得分:1)

要记住的另一件事是,如果您的应用程序Foo具有日志记录功能,并且dll Bar具有日志记录功能,并且Foo使用Bar (正如通常的例子所示)。

 + Foo
 |  |   // some console app
 |  |   // references and uses bar
 |   --- Foo.exe
 |   --- NLog.config
 |  
 +--+ Bar
    |   // This is your dll
    |   // it also tries to be cool and log stuff
     --- Bar.dll
     --- NLog.config

当你编译并运行它时,Foo NLog配置将是使用的配置,而Bar配置将不执行任何操作(由于Foo具有{{1}},因此不会复制它一个已经)。