2011-11-01 68 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

相關問題