簡體   English   中英

在API REST .NET中從NLog讀取NLog.config

[英]Reading NLog.config from NLog in API REST .NET

當我從ASP.NET MVC4項目調用它時,我從類庫項目中讀取配置文件(NLog.config)時遇到問題。

我使用單元測試項目測試了我的代碼並正確讀取配置文件並正確記錄我在NLog.config上指定的文件,因此正確定義了NLog.config。

我也在Copy to Output Directory設置中設置了“Copy always”,就像教程所說的那樣。

問題是當我調用類庫項目時,從我的ASP項目中,我意識到沒有進行任何類型的日志,當我調試時,我看到它沒有從NLog.config中選擇配置,並且因此,我的項目不知道何時何地登錄。

當我查看“ASP項目文件夾”/ bin時,有來自NLog的文件:NLog.dll,NLog.config和NLog.xml,所以從理論上講,ASP項目可以無問題地訪問NLog文件。

我從NLog閱讀教程,但我無法找到解決方案。 只是不明白為什么我的測試項目工作正常,但是當我從我的ASP項目進行同樣的調用時,就是不行。

這是我的NLog配置文件。

<?xml version="1.0" encoding="utf-8" ?>
<nlog throwExceptions="true" 
  xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<targets>
  <target name="logfile" xsi:type="File" fileName="C:\logfile.txt" layout="${callsite:fileName=true} - ${longdate} - ${level:uppercase=true} - ${logger} - ${message}"/>
</targets>

<rules>
  <logger name="*" minlevel="Info" writeTo="logfile" />
</rules>
</nlog>

在我的課程中,我用這種方式創建了記錄器:

private static Logger logger = LogManager.GetCurrentClassLogger();

任何人都可以幫我解決這個問題嗎?

我找到了解決方案。

似乎與復制到輸出目錄設置,與asp.net-mvc4是不夠的。

復制到輸出目錄

我不得不手動將NLog.config復制到Solution explorer中的asp項目中。

Project explorer http://imageshack.us/a/img849/2460/sol1o.png

在這個例子中,我將Nlog.config從LoggingLibrary復制到LogWebApp項目中並且運行良好。

問候!

嘗試打開nlog本身的內部日志記錄 ,看看它可能會告訴你什么。

<nlog internalLogFile="c:\log.txt" internalLogLevel="Trace">

您可能會發現這是一個權利問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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