我写了一个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中工作,我缺少什么?
答案 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}},因此不会复制它一个已经)。