【问题标题】:Creating an error log table in oracleoracle创建错误日志表
【发布时间】:2015-12-05 17:38:58
【问题描述】:

我在 Toad 中为 oracle 创建了一个名为 error_log 的表。这样做的目的是记录以前编写的包可能遇到的任何错误,并将它们记录下来供开发人员查看。现在,我的任务是创建一个包/过程,它本质上会引发错误并能够将其记录到 error_log 表中?关于我将如何处理这件事有什么想法吗?

【问题讨论】:

标签: oracle plsql exception-handling toad error-logging


【解决方案1】:

首先,使包过程成为一个自治事务,这样无论你写到日志中的任何内容,即使调用事务回滚。

其次,让日志过程的调用者传递尽可能少的信息:理想情况下,只是一条消息。在您的日志过程中,您可以执行以下操作:

  • 决定是否“开启”日志记录并写入日志
  • 决定调用日志过程的包和行号(这样你就可以写出消息的来源)
  • 决定消息的时间戳应该是什么
  • 决定用户是谁,他的 IP 地址是什么,等等,如果你想记录这些事情

第三,这只是我的看法,不要有“消息级别”的概念。我基本上有两种类型的消息——错误和非错误。错误总是被写入;可以打开或关闭非错误。当您尝试设置像“Fine”、“Finer”和“Finest”这样的日志记录级别时,只要出现问题,您总会将其打开为“Finest”。

【讨论】:

    【解决方案2】:

    您需要使用RAISE_APPLICATION_ERROR 过程,该过程允许您引发您定义的错误。

    Handling PL/SQL Errors

    【讨论】:

      猜你喜欢
      • 2010-10-26
      • 1970-01-01
      • 1970-01-01
      • 2020-05-14
      • 2011-05-09
      • 2016-03-27
      • 2011-08-11
      • 2015-02-24
      • 2016-10-31
      相关资源
      最近更新 更多