2

在甲骨文中,人们经常会收到如下消息 -

ORA-01882: timezone region not found.

这种格式有几个好处,比如 -

  1. 更容易提供电话支持,客户只需读出错误代码。
  2. 更容易搜索和计算文件中的特定错误。我可以只搜索唯一的错误代码,而不是使用基于正则表达式的模式匹配来搜索日志消息。

如何在我自己的应用程序中实现这一点?我不只是要求一个代码片段,而是你将如何管理整个过程。

  1. 您会在 Excel、属性文件或数据库中维护错误代码到消息的映射吗?

  2. 在使用之前,我是否需要将每个代码消息组合手动输入到数据库中?我可以让我的日志记录框架为我记录的每个唯一字符串自动创建一个随机错误代码吗?

  3. 在流行的日志框架(如 logback)中是否对此有标准规定?

4

2 回答 2

0
  1. 如果您想要 I18N 支持,请使用属性。

  2. 如果存在,特定代码部分可能会出现特定数字错误。例如,Apache Derby 有一个带有错误消息标识符列表的接口。这是一组消息标识符。

    String CONNECT_PASSWORD_ISNULL = "08001.C.8";
    String CONNECT_SOCKET_EXCEPTION = "08001.C.3";
    

    此标识符在某些代码部分中使用。

    throw Util.generateCsSQLException(SQLState.CANNOT_COMMIT_XA);
    
  3. 登录您喜欢的框架。例如,MyBatis 使用自定义登录类来登录到多个框架,该类org.apache.ibatis.logging.LogFactory具有该逻辑。

于 2013-05-09T06:47:38.500 回答
0

对于必须确定的每种错误类型,您都需要有一个键。 ResourceBundles可以帮助您。曾经使用它的理由是语言支持。只要您为每种语言提供一个文件,文本就可以是任何语言。

于 2013-05-09T06:43:21.490 回答