How to enable and retrieve FND
debug log messages [ID 433199.1] Free Hit Counters Starting in 11.5.10, FND has
incorporated a debugging technique to enable debug messages to get stored into
the table FND_LOG_MESSAGES. This method was introduced in 11.5.10 and it is
available in subsequent releases. This note gives simple steps on how to enable
and retrieve the debug messages. This method will pick up *all* debug messages
from a particular log_sequence value. As such, it is particularly useful when
you are having trouble retrieving the debug messages associated to a particular
concurrent request, or user. However, if there are multiple users with FND
debugging enabled running various processes, you could end up picking up debug
messages pertaining to their activities.
Solution 1) set up profiles for
the User / Responsibility to be used to reproduce the issue Profile Name
Suggested value Comments FND: Debug Log Enabled YES This turns the debugging
feature on FND: Debug Log Filename NULL Use when you want debug messages to get
stored to a file FND: Debug Log Level STATEMENT Following are options listed
from least to most detailed debugging : Unexpected, Error, Exception, Event,
Procedure, Statement FND: Debug Log Module % Indicate what modules to debug.
You can use something like 'ar%' or even '%arp_rounding%' to limit modules
debugged Following are examples on how you would set the above profiles
depending on what you want to debug : sample setting to debug everything : FND:
Debug Log Enabled YES FND: Debug Log Filename NULL FND: Debug Log Level
STATEMENT FND: Debug Log Module % sample setting to debug ONLY Receivables :
FND: Debug Log Enabled YES FND: Debug Log Filename NULL FND: Debug Log Level
STATEMENT FND: Debug Log Module ar%
2) Since the debugging routine
will start writing messages to the table, we want to know which messages
pertain to our test. If you are tracking the debug messages for a concurrent
request, note down the Concurrent Request id. Otherwise, note down current max
value of log sequence retrieved as follows : SELECT MAX(LOG_SEQUENCE) FROM
FND_LOG_MESSAGES
3) Run your test case,
try to stay on track in reproducing the issue and leave out extraneous steps so
that you don't end up with debug messages that are not relevant to your issue.
It is ideal to not have anyone else using the Responsibility you have enabled
debug for, so that only messages pertaining to your testcase are picked up.
4) For ease of review by
Development, spool the output of the following to a .xls spreadsheet : a) If
you are debugging a concurrent process : SELECT log.module , log.message_text
message FROM fnd_log_messages log, fnd_log_transaction_context con WHERE
con.transaction_id = < request_id > AND con.transaction_type =
'REQUEST' AND con.transaction_context_id = log.transaction_context_id ORDER BY
log.log_sequence; b) Otherwise, SELECT module, message_text FROM
fnd_log_messages WHERE log_sequence > &max_log_from_step2 ORDER
BY log_sequence; Or you may select all columns with: SELECT * FROM
fnd_log_messages WHERE log_sequence > &max_log_from_step2 ORDER
BY log_sequence;