3

当我从我的 ASP.NET MVC4 项目中调用它时,我从我的类库项目中读取配置文件 (NLog.config) 时遇到问题。

我使用单元测试项目测试了我的代码,并正确读取了配置文件并正确记录了我在 NLog.config 上指定的文件,因此正确定义了 NLog.config。

正如教程所说,我还在“复制到输出目录”设置中设置了“始终复制”。

问题是,当我从我的 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();

有人可以帮我解决这个问题吗?

4

2 回答 2

1

我想出了解决方案。

似乎与复制到输出目录设置一样,对于 asp.net-mvc4 来说还不够。

复制到输出目录

我不得不手动将 NLog.config 复制到解决方案资源管理器中的 asp 项目本身。

项目浏览器 http://imageshack.us/a/img849/2460/sol1o.png

在此示例中,我将 NLog.config 从 LoggingLibrary 复制到 LogWebApp 项目中,它运行良好。

问候!

于 2012-11-21T14:43:09.997 回答
0

尝试打开 nlog 本身的内部日志记录,看看它会告诉你什么。

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

你可能会发现这是一个权利问题。

于 2012-11-20T08:58:40.387 回答