当我用NLog 2.0.1捕获异常时,我正在寻找一种记录表达消息的方法,类似
try {
....
}
catch(Exception ex) {
logger.ErrorException("Error with query {0}", query, ex);
}
但是NLog不支持它。 发生在我身上的其他形式是
logger.ErrorException( String.Format("Error with query {0}", query)) , ex);
或
logger.Error("Error with query {0} {1} {2}", query, ex.Message, ex.StackTrace);
或
logger.Error("Error with query {0}", query);
logger.ErrorException("", ex);
或
LogEventInfo ei = new LogEventInfo(LogLevel.Error, logger.Name, null,
"Error with query {0}", new object[] { query }, ex);
logger.Log(ei);
但是没有一个像调用logger.Error ()
那么简单
目前,第一个选项是我的偏好,尽管格式化了一个可能不会被使用的字符串:
还有更多?
答案 0 :(得分:4)
更新,
这是可能的,因为NLog 4.0
logger.Error(ex, "Error with query {0}", query);
答案 1 :(得分:0)
没有其他替代。你运气不好。
你的第二个例子看起来不错。
当我查看Visual Studio时Error()
有42个不同的签名
ErrorException()
只有一个。
从以下链接中您可以看到:(点击“错误”和“ErrorException”链接)
http://nlog-project.org/documentation/v2.0.1/html/AllMembers_T_NLog_Logger.htm