当我从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();有人能帮我解决这个问题吗?
发布于 2012-11-21 22:43:10
我想出了解决方案。
似乎有了复制到输出目录的设置,对于asp.net-mvc4是不够的。

我必须在解决方案资源管理器中手动将NLog.config复制到asp项目本身。
Project explorer http://imageshack.us/a/img849/2460/sol1o.png
在本例中,我将NLog.config从LoggingLibrary复制到LogWebApp项目中,并且运行良好。
欢迎光临!
发布于 2012-11-20 16:58:40
尝试打开nlog本身的internal logging,看看它可能会告诉您什么。
<nlog internalLogFile="c:\log.txt" internalLogLevel="Trace">你可能会发现这是一个配股问题。
https://stackoverflow.com/questions/13469474
复制相似问题