CS结构的软件,delpih写的程序,数据库用SQLServer2000.软件登录、主要的用户操作,都通过程序记录在日志表log中。问题是:如何记录软件非正常退出的日志呢,例如通过结束任务关闭软件、停电、死机等非正常退出的情况。

解决方案 »

  1.   

    结束任务关闭软件可以拦载某些API 但API太多了 除非挂钩内核的.
    至于停电、死机 其效果都是一样的 难以判断. 参照楼上的 查一下系统的应用程序事件.
      

  2.   

    可以...
    其实就是将程序出错信息dump出来——对开发人员来说,就是想看异常信息类型,调用栈(出错的代码位置)。但这样会导致执行程序或安装包体积变大。目前,记录这些异常日志的,有好多第三方软件,比如EurekaLog、JCL Debug...
    设置可以将这些异常信息通过邮件发给开发者
      

  3.   

    非正常的日志考虑调用Windows本身的dump日志
    程序中可以使用全局异常,但有时候程序自己是没办法截获的
      

  4.   

    这个。。程序崩溃等问题是可以在代码中加入MadException这种第三方控件来捕获的
    如果只是捕获异常,那么Application.HandleException里处理即可
    但是你所说的这些情况(通过结束任务关闭软件、停电、死机等非正常退出的情况)太。。无语了。。
      

  5.   

    “、停电、死机等非正常退出的情况”的日志, 程序自身是搞不定的。。
    Windows的事件查看器可以看出一些端倪,但“停电”这种,真的没办法搞定