Nlog错误(消息,异常)忽略异常

时间:2014-04-24 16:21:22

标签: exception error-handling .net-3.5 nlog

我只记录了问题日志异常消息。

NLog config:

<target name="logfile"
        xsi:type="File"
        fileName="log.txt"
        layout="${longdate} | ${machinename} | ${processid} | ${processname} | ${level} | ${logger} | |${message} | ${exception:format=tostring}" />



<logger name="*"
        minlevel="Info"
        writeTo="logfile" />

用法:

    private static Logger _logger = LogManager.GetCurrentClassLogger();

    _logger.Error("my message", new Exception("my exception"));

日志输出:

2014-04-24 18:17:29.0841 | PC_NAME | 6464 | APP_NAME.vshost | Error | AppName.ViewModel | my message |

例外是忽略。

我发现了一些thread,但对我来说不行。

2 个答案:

答案 0 :(得分:1)

Nlog使用特殊方法记录使用<loglevel>Exception命名架构的异常。

因此,在您的情况下,您需要使用ErrorException方法才能正确记录异常:

private static Logger _logger = LogManager.GetCurrentClassLogger();

_logger.ErrorException("my message", new Exception("my exception"));

答案 1 :(得分:0)

实际上,void Error(string message, Exception exception);已过时

您可以使用下面的ILogger.Error(Exception, string)方法

catch (Exception e)
{
 Log.Error(e, "it happens");
}

并使用${onexception}进行了一些修改后的布局。这将检查是否有要记录的异常

<target name="logfile"
        xsi:type="File"
        fileName="log.txt"
        layout="${longdate} | ${machinename} | ${processid} | ${processname} | ${level} | ${logger} | |${message} ${onexception:| ${exception:format=tostring}}" />

/&GT;