当我使用 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 ()
了 目前,第一个选项是我最喜欢的,尽管格式化一个可能不会被使用的字符串:
- 第二个选项不使用异常的布局选项。
- 第三个在日志中创建了两个条目,可能会令人困惑。
- 第四个选项不太清楚。
还有一些吗?