簡體   English   中英

來自內部nuget庫包的Nlog

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM