EBS 查看调试日志

  • 前言
  • 一般情形
  • 配置文件
  • 拓展
  • 订单模块
  • 库存模块


前言

在EBS中,针对标准功能,有时会碰到一些疑难杂症,根据错误提示无法准确定位问题,这时候就需要开启调试,查看日志;另外向官方提SR时,也常常需要提供日志文件。

一般情形

以下内容只是介绍代码中使用 FND_LOG.STRING(STRING(LOG_LEVEL IN NUMBER, MODULE IN VARCHAR2, MESSAGE IN VARCHAR2));来添加调试日志的情况。

配置文件

调试涉及以下几个配置文件:

配置文件名

用户配置文件名

说明

AFLOG_ENABLED

FND:启用调试日志

启用日志。如果为否 (‘N’),则运行时不会进行记录和发出预警。

AFLOG_FILENAME

FND:中间层的调试日志文件名

中间层日志的完整目录路径和文件名

AFLOG_LEVEL

FND:调试日志级别

用于进行记录的最小级别。如果未设置此配置文件,则默认级别为 6(意外)。

AFLOG_MODULE

FND:调试日志模块

用于进行记录的模块筛选。这是一个单独的模块列表。如果没有此配置文件的值,则将记录所有模块。

具体说明如下:

(1)FND:启用调试日志

当值为是后,启用调试日志。

(2)FND:中间层的调试日志文件名

该配置文件本是用于指定日志文件存放路径的,但实际上并未用到。可以看到如下备注,目前仅仅是通过表 fnd_log_messages 来存放日志信息,但某些模块单独封装的,如订单模块,可能会用到。

ebs java 日志乱码 ebs应用日志_oracle


(3)FND:调试日志级别

级别代码

级别名称

级别值

UNEXPECTED

未预期

6

ERROR

错误

5

EXCEPTION

例外

4

EVENT

事件

3

PROCEDURE

过程

2

STATEMENT

对账单

1

会通过当前的日志信息等级与配置文件值进行比较,只有比配置文件值小时,才会存储日志信息,所以数字越小,意味着日志越详细,另外STATEMENT显示名称是对账单,应该是翻译问题,理解为语句级就行。
(4)FND:调试日志模块
用来指定需要调试的模块范围,比如说需要对采购模块进行调试,那设置为 po 即可,如果想同时对采购和应付模块进行调试,则设置为 po,ap,多个模块之间用 , 分隔。
判断是否用插入日志信息的大致逻辑:
首先根据配置文件值进行初始化,会按逗号分隔,存在全局变量记录表中,PO%,AP%
例如 G_MODULE_NAME'AP.PLSQL.AP_APPROVAL_PKG.',判断 G_MODULE_NAME LIKE 'PO%',就会插入日志信息。

通过 fnd_log_messages 查看日志结果

拓展

实际上,有一些模块没有使用通用的调试日志的方法,而是自己封装一套。所以我们实际需要开启提示日志的时候,还是建议打开具体的api里的代码,查看下里面使用的日志方法。
这里我列几个常用模块开启调试日志的方法。

订单模块

Add(debug_msg in Varchar2, debug_level in Number default 5)

配置文件名

用户配置文件名

说明

AFLOG_ENABLED

FND:启用调试日志

启用日志。如果为否 (‘N’),则运行时不会进行记录和发出预警。

ONT_DEBUG_LEVEL

OM: 调试级别

用于打印消息的调试级别

AFLOG_FILENAME

FND:中间层的调试日志文件名

中间层日志的完整目录路径和文件名

AFLOG_LEVEL

FND:调试日志级别

用于进行记录的最小级别。如果未设置此配置文件,则默认级别为 6(意外)。

(1)FND:启用调试日志
当值为是后,启用调试日志。
(2)OM: 调试级别
0: 不启用
N(N>0): 大于0就行,数字越大越详细,注意和通用方法相反

:也就是说当 FND:启用调试日志 设置为 ,且 OM: 调试级别 大于 0 时,才会开启
(3)FND:中间层的调试日志文件名
该配置文件本是用于指定日志文件存放路径的,如 user/tmp/a.txt (4)FND:调试日志级别
见上文。

小结:
如果是提交并发请求时,开启调试日志,那么调试日志信息会写入请求的log文件中,具体路径可通过

SELECT fcr.logfile_name
  FROM fnd_concurrent_requests fcr
 WHERE fcr.request_id = &request_id;

如果 FND:中间层的调试日志文件名 也设置了值,那么也会同时插入,这里应该有限制,只能 SELECT VALUE FROM v$parameter WHERE NAME = 'utl_file_dir'; 下的路径才可以。

库存模块

配置文件名

用户配置文件名

说明

INV_DEBUG_TRACE

INV:调试跟踪

此选项将创建 INV 的调试文件

INV_DEBUG_FILE

INV:调试文件(包括完整的路径)

此选项将创建 INV 的调试文件

INV_DEBUG_LEVEL

INV:调试层

此选项将创建汇总/详细资料文件