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 来存放日志信息,但某些模块单独封装的,如订单模块,可能会用到。
(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:调试层 | 此选项将创建汇总/详细资料文件 |