当我使用NLog记录SqlException
时,格式化的异常中缺少许多重要的属性,例如存储过程名称。
使用NLog记录SqlException
的最有效方法是什么?
答案 0 :(得分:1)
您可以将额外信息写入属性。在这种情况下,流畅的界面是最合适的。
using NLog.Fluent;
...
var sqlCommand = new SqlCommand();
try
{
}
catch (SqlException ex)
{
Log.Error().Exception(ex)
.Message("Error in DB")
.Property("command-text", sqlCommand.CommandText)
.Property("command-parameters",
string.Join(",", sqlCommand.Parameters.Cast<SqlParameter>().Select(p => p.ParameterName + "=" + p.Value)))
.Write();
}
配置中的用法:
${event-properties:command-text}
和${event-properties:command-parameters}