NLog无法在发布模式下工作

我正在使用NLog来记录我的asp.net mvc(C#)应用程序中的exception。

NLog无法在发布模式下工作。 在调试模式下运行时也一样。

可能是什么问题? 这有什么问题吗?

我遇到了和你一样的问题:

  • ASP.NET MVC 3
  • .NET 4
  • IIS 7
  • 发布模式

我尝试更改目录,并更改权限无济于事。 我甚至尝试启用内部日志记录,但即使这样也行不通! 没有失败,没有例外,没有!

在做了一些调查之后,我找到了解决方案。 由于某种原因,NLog没有加载配置文件AT ALL。 在以编程方式启用内部日志记录后,我意识到了这一点 内部日志报告如下:

2012-02-13 11:34:40.3181 Debug Targets for MyMvcController by level: 2012-02-13 11:34:40.3181 Debug Trace => 2012-02-13 11:34:40.3181 Debug Debug => 2012-02-13 11:34:40.3181 Debug Info => 2012-02-13 11:34:40.3181 Debug Warn => 2012-02-13 11:34:40.3181 Debug Error => 2012-02-13 11:34:40.3181 Debug Fatal => 

这基本上是说没有为任何日志级别定义目标! 绝对不正确!

我的NLog配置文件尽可能简单(并且设置为Copy to Output Directory):

         

我仍然不确定为什么会发生这种情况,但将NLog配置移动到web.config直接解决了问题。

设置环境变量:NLOG_INTERNAL_LOG_LEVEL和NLOG_INTERNAL_LOG_FILE,重新运行你的发布版本然后查看日志文件看看有什么问题

将nlog配置传输到应用程序的配置文件(例如web.config),然后重试。

确保目标文件保存在“/ logs /”文件夹中。 见下文

  

我试图登录“root / log.log”并且无法正常工作,然后尝试了“root / logs / log.log”并且工作了

完整配置文件下方。

                 

我遵循了所有其他答案,但它没有奏效。 所以我尝试了下面的工作。

在调用之前或调用LogManager.GetCurrentClassLogger(); ..我调用了LogManager.Configuration

 #region Constructor public LoggerService() { var configuration = LogManager.Configuration; _logger = LogManager.GetCurrentClassLogger(); //var configuration = LogManager.Configuration; } #endregion Constructor 

仅供参考:我没有对配置做任何事情。 我刚刚打过电话。

正如其他人所说的那样,它起作用的原因是“我不知道为什么”!

对于任何不确定’为什么nlog不在prod环境中工作’的人:

  1. 转到Nlog.config文件
  2. nlog标记中设置throwExceptions =“ true ”并以适当的错误开始调试。

祝好运。