了解错误日志实现

时间:2012-10-31 07:55:11

标签: c# asp.net .net error-logging

我在其中一个应用程序中发现了这种错误记录方式。

实际记录错误的位置在哪里?

错误日志调用

ErrorLog oLogError = new ErrorLog();
oLogError.ErrorInfo[3] = ex.Message;
oLogError.ErrorInfo[4] = ex.StackTrace;
oService.LogError(oLogError.ErrorInfo);
oService.Dispose();

定义oService.LogError();

[System.Web.Services.Protocols.SoapDocumentMethodAttribute
    ("http://tempuri.org/LogError", RequestNamespace="http://tempuri.org/",                     ResponseNamespace="http://tempuri.org/",                            Use=System.Web.Services.Description.SoapBindingUse.Literal,                 ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public void LogError(string[] errorInfo) {
        this.Invoke("LogError", new object[] {
                    errorInfo});
}

2 个答案:

答案 0 :(得分:0)

此:

  this.Invoke("LogError", new object[] {
                        errorInfo});

新建一个对象,此对象会收到您的errorInfo并记录错误。

答案 1 :(得分:0)

我不确定你的" LogError" this.Invoke("LogError", new object[]中的字符串均值。理想情况下,它应该是方法名称而不是字符串。

Correct definition

public Object Invoke(
    Delegate method,
    params Object[] args
)

您基本上是在数组上捕获错误信息。然后将其传递给Logerror方法。方法inturn调用invoke方法。

Invoke使用作为第二个参数errorInfo传递的对象数组执行指定为委托的方法(第一个应该是方法名的参数)。并且执行发生在控件拥有的线程上。