C# NLog拒绝抛出异常
各位开发者好, 我在NLog中遇到了一个奇怪的问题,C# NLog拒绝抛出异常,c#,debugging,exception,nlog,throw,C#,Debugging,Exception,Nlog,Throw,各位开发者好, 我在NLog中遇到了一个奇怪的问题, 我崩溃了,但在日志中找不到用户活动的跟踪 我想,日志记录不起作用… 尝试搜索权限问题等,但似乎一切正常 我想在出现问题时调试日志记录,因此我创建了以下 用于告知用户是否无法创建任何内容的代码: public static class Log { static Log() { try { AppLogger = LogManager.GetLogger("Megatec.E
我崩溃了,但在日志中找不到用户活动的跟踪 我想,日志记录不起作用…
尝试搜索权限问题等,但似乎一切正常 我想在出现问题时调试日志记录,因此我创建了以下
用于告知用户是否无法创建任何内容的代码:
public static class Log
{
static Log()
{
try
{
AppLogger = LogManager.GetLogger("Megatec.EngineeringMatrix.AppLogger");
ChangeLogger = LogManager.GetLogger("Megatec.EngineeringMatrix.ChangeLogger");
DRCLogger = LogManager.GetLogger("Megatec.EngineeringMatrix.DRCLogger");
if((AppLogger == null) || (ChangeLogger == null) || (DRCLogger == null))
throw new NLogConfigurationException("Configuration does not specify correct loggers");
writeStartupLogEntry();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), @"Failed to load `Megatec.EngineeringMatrix` Loggers.");
throw;
}
}
public static readonly Logger AppLogger;
public static readonly Logger ChangeLogger;
public static readonly Logger DRCLogger;
使用以下配置文件:
显然,我编写了BAAD配置,因为无法创建目录c:\lo?gs
但是,我仍然没有得到消息MessageBox.Show(例如ToString(),@“无法加载“Megatec.EngineeringMatrix”
甚至AppLogger.Info()
我没有写日志,但应用程序不知道
在调试中,我可以捕获异常,并看到它是由NLog处理的
如何从代码中捕获它?这是一个老问题,但最近对此进行了一些更改
一些异常在过去被NLog“吃掉”。例如在AsyncWrapper
(或使用
上的属性async
)
这已在NLog 4.3中修复:
异常的一致处理(行为改变)
异常的日志记录和抛出以前不一致。并非所有异常都记录到内部记录器,有时它们会丢失。例如,异步包装器(或异步属性)在没有正确重试的情况下捕获所有异常
这是不好的,因为有时不清楚NLog为什么不工作(我自己多次得到)。这在NLog 4.3中已经修复
所有异常都记录到内部记录器中
“ThroweExceptions”选项将在所有情况下得到尊重
建议:在生产环境中禁用ThroweExceptions!(这是默认设置)
请参见您是否尝试了此处的故障排除步骤:?默认情况下,日志异常会被忽略。是的,我添加了您可以看到的Necesory config参数..但仍然可以。我可以在internalLog中看到,但没有传递到应用程序。