0

我知道我可以使用 PetaPoco 记录异常:

public override void OnException(Exception x)
{
    _logger.LogError(x);
}

我也意识到我可以转储命令文本+参数:

public override void OnExecutingCommand(System.Data.IDbCommand cmd)
{
    _logger.LogInfo(cmd.CommandText);
    foreach (SqlParameter sqlParam in cmd.Parameters)
    {
        _logger.LogInfo(String.Format("Name: {0}; Value: {1}; SqlValue: {1}", sqlParam.ParameterName,
                                      sqlParam.Value, sqlParam.SqlValue));
    }
    base.OnExecutingCommand(cmd);
}

自然,我真的不想在生产环境中记录每个命令+参数。

在引发异常时记录命令+参数的最佳方法是什么?

谢谢!

4

1 回答 1

1

You can try this.

public override void OnException(Exception x)
{
    _logger.Log(LastCommand);
    _logger.LogError(x);
}

LastSql and LastArgs are also available.

于 2011-11-02T03:05:35.737 回答