2011-11-01 47 views
0

我知道我可以PetaPoco从而记录异常:记录的SqlCommand只有在错误W的情况下/ 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); 
} 

LastSqlLastArgs也可提供。

+0

太棒了 - 谢谢!不能相信我错过了... – seekay

相关问题