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 に答える