[英]Nlog from an internal nuget library package
我已經編寫了ac#庫項目,並添加了nlog。 我正在利用日志記錄文件。
然后,我使用帶有以下文件的Nuget包資源管理器為此庫創建了一個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中工作的功能?
您很可能在nlog.config中犯了一些錯誤,但是...
請檢查您使用的NLog.dll版本是否相同(因此,您用來構建MyLibrary.dll和WebFormsProject的版本)。
請注意,從NLog 3.0版開始,對dotnetfx20的支持已被刪除。 使用最新的NLog現在需要dotnetfx35。
如果這沒有幫助您,請嘗試另一種方法以檢測出問題所在。 例如,創建一個簡單的控制台應用程序,在其中使用新創建的nuget包。 您是否在那里進行日志記錄工作?
要記住的另一件事是,如果您有一個具有日志記錄功能的應用程序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
已經擁有該配置,因此不會被復制)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.