我想知道到底应该记录什么。我的意思是,我可以记录异常,这是非常标准的,但我可以使用Elmah记录其他内容吗?
我实际上并没有使用那么多尝试,抓住块。我读到这些应该仅用于特殊情况,而不是“标准行为”,因为它们可能会降低性能。
通常我会使用简单的if子句来阻止异常发生。
例如,简单除以0。
int z = x/y;
我会写如下:
int z;
if(y!=0)
{
z = x/y;
}
else
{
z=0;
}
现在这对我来说是完全可以接受的。
我不认为这是一个例外,但仍然......我想知道y参数等于0的地方。
使用Elmah记录此信息是否可以?或者我应该使用其他东西吗?
答案 0 :(得分:1)
您可以手动轻松登录elmah。请致电:
ErrorSignal.FromCurrentContext().Raise(new Exception());
对于自定义消息,只需运行:
var customEx = new Exception("Hey y!=0!!!");
ErrorSignal.FromCurrentContext().Raise(customEx);
您还可以决定使用log4net或nlog进行更复杂的日志记录并使用Elmah appender
答案 1 :(得分:1)
您还可以帮助记录您自己的错误:
public static void OwnError(Exception e, String myMsg)
{
var exception = new Exception(myMsg, e);
Elmah.ErrorSignal.FromCurrentContext().Raise(exception);
}