Ведение журнала SqlCommand только в случае ошибки w / PetaPoco

#asp.net-mvc-3 #petapoco

#asp.net-mvc-3 #petapoco

Вопрос:

Я знаю, что могу регистрировать исключения с помощью 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);
}
 

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

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

Спасибо!

Ответ №1:

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

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

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