繁体   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