Регистрация SqlCommand только в случае ошибки с PetaPoco - PullRequest
0 голосов
/ 02 ноября 2011

Я знаю, что могу регистрировать исключения с помощью PetaPoco таким образом:

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

Я также понимаю, что могу сбросить текст команды + params:

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);
}

Естественно, я не хочу регистрировать каждую команду + параметры в производственной среде.

Каков наилучший подход для регистрации команды + params только при возникновении исключения?

Спасибо!

1 Ответ

1 голос
/ 02 ноября 2011

Вы можете попробовать это.

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

LastSql и LastArgs также доступны.

...