none
在asp。net中,如果我想在try中将破获的异常信息输出到应用程序日志中,改怎么弄呢? RRS feed

答案

  • 我是用Log4Net的,性能方面不错。学起来也比较简单看看Apache上的说明就会了。
    2009年4月6日 23:49
  • 不行啊,版主,按照你的方法,日志里面信息太多了,我想的是只有在我需要的地方,才输出信息,比如我在某个catch里面Trace.Write("aa"),这样才会输出信息。

    以上只是例子 ,在你想要的地方写
    System.Diagnostics.EventLogTraceListener elt = new System.Diagnostics.EventLogTraceListener("ASPNETTrace");
      System.Diagnostics.Trace.Listeners.Add(elt);

    而不是
    public void Application_OnStart()里写


    孟宪会
    2009年4月7日 0:39
    版主
  • 不行啊,版主,按照你的方法,日志里面信息太多了,我想的是只有在我需要的地方,才输出信息,比如我在某个catch里面Trace.Write("aa"),这样才会输出信息。

    这样的话,你可以单独使用System.Diagnostics.EventLog,具体用法可看MSDN,很简单的,就跟Trace.Write类似。另外用第三方组件也可以,例如Log4Net。
    Microsoft ASP.NET MVP
    2009年4月7日 4:06
    版主

全部回复

  • 以下例子就是将ASP.NET跟踪消息输出到Windows事件查看器的“应用程序”里面。
    修改配置文件如下:
    <?xml version="1.0"?>
    <configuration>
      <system.web>
        <trace enabled="true" writeToDiagnosticsTrace="true"/>
      </system.web>
    </configuration>
    在Global.asax里的Application_OnStart事件里写:
    public void Application_OnStart()
    {
      System.Diagnostics.EventLogTraceListener elt = new System.Diagnostics.EventLogTraceListener("ASPNETTrace");
      System.Diagnostics.Trace.Listeners.Add(elt);
    }
    默认情况下,ASP.NET工作进程的用户令牌是ASPNET(IIS 6.0上是NETWORK SERVICE)。由于该账户不具有创建事件源的正确用户权限,因此,需要手工在注册表的应用程序事件日志下创建一个事件源(用其他方法也可以):
    (1)单击“开始”,然后单击“运行”。
    (2)在“打开”文本框中,键入regedit,按下回车键。
    (3)找到以下注册表子项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services \Eventlog\Application。
    (4)鼠标右键单击“Application”子项,在弹出的快捷菜单中指向“新建”命令,然后单击“项”。
    (5)键入ASPNETTrace作为该项的名称(与Global.asax中EventLogTraceListener事件源名称一致)。
    (6)关闭注册表编辑器。


    其他地方的Try也是类似的
    孟宪会
    2009年4月6日 13:49
    版主
  • 不行啊,版主,按照你的方法,日志里面信息太多了,我想的是只有在我需要的地方,才输出信息,比如我在某个catch里面Trace.Write("aa"),这样才会输出信息。

    2009年4月6日 14:27
  • 我是用Log4Net的,性能方面不错。学起来也比较简单看看Apache上的说明就会了。
    2009年4月6日 23:49
  • 不行啊,版主,按照你的方法,日志里面信息太多了,我想的是只有在我需要的地方,才输出信息,比如我在某个catch里面Trace.Write("aa"),这样才会输出信息。

    以上只是例子 ,在你想要的地方写
    System.Diagnostics.EventLogTraceListener elt = new System.Diagnostics.EventLogTraceListener("ASPNETTrace");
      System.Diagnostics.Trace.Listeners.Add(elt);

    而不是
    public void Application_OnStart()里写


    孟宪会
    2009年4月7日 0:39
    版主
  • 不行啊,版主,按照你的方法,日志里面信息太多了,我想的是只有在我需要的地方,才输出信息,比如我在某个catch里面Trace.Write("aa"),这样才会输出信息。

    这样的话,你可以单独使用System.Diagnostics.EventLog,具体用法可看MSDN,很简单的,就跟Trace.Write类似。另外用第三方组件也可以,例如Log4Net。
    Microsoft ASP.NET MVP
    2009年4月7日 4:06
    版主
  • 谢谢两位版主
    2009年4月10日 0:33
  • 在asp。net中,如果我想在try中将破获的异常信息输出到应用程序日志中,改怎么弄呢?
    所有代码中不要try,
    在Application_Error中写。并呈现即可,目前我们的就是这样解决的。

    tellov
    2009年4月15日 8:54