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环境中工作’的人:
- 转到Nlog.config文件
- 在nlog标记中设置throwExceptions =“ true ”并以适当的错误开始调试。
祝好运。
- ASP.NET MVC从byte 生成PDF
- Posttorial:ASP.NET MVC,entity framework和LINQvideo教程 – 包括MIX09,PDC,TechED
- 使用Linq返回查询中的项目计数及其结果集
- 如何在C#中的Html.ActionLink上使用CSS
- 无法加载文件或程序集’Newtonsoft.Json,Version = 7.0.0.0
- 在ASP.NET MVC应用程序中使用HandleErrorAttribute
- 如何在C#/ ASP.NET MVC中实现搜索function
- 为什么有多个DbContext类?
- ASP.NET MVC控制器unit testing – UrlHelper扩展问题