• FND Debug Log(FND_LOG_MESSAGES)


    之前每个模块记录日志的方式都不同,都会把日志写到不同的文件中,对于User来说很麻烦,需要记住很多的配置,现在越来越多的模块使用FND Logging来存储日志,比如WIP,RCV,OAF...FND Debug Log会把Apps的日志输出到FND_LOG_MESSAGES表里。

    怎样收集FND的日志

    Step 1 profile设置(user级)
    FND: Debug Log Level,这个level,可以设置为Unexpected,Error,Exception,Event,Procedure或者Statement,一般情况下设置Log Level为"Statement" level。

    FND: Debug Log Enabled 设置为Yes

    FND: Debug Log Module
      设置为 %,如果你大概知道你的问题是那个模块下的问题,你可以设置这个profile为po%,hr%,fnd%,WIP%...这样收集的日志会更少,也更容易分析。

    补充:设置为statement的好处,它会记录所有的日志,如果你只想查看Error的日志,那么你可以在查询语句中限定log_level=5,那么只会输出error级别的日志。

    UNEXPECTED:Level Id = 6
    ERROR     :Level Id = 5
    EXCEPTION :Level Id = 4
    EVENT     :Level Id = 3
    PROCEDURE :Level Id = 2
    STATEMENT :Level Id = 1

    Step 2 重现你的问题

    Step 3  从fnd_lot_messages表中收集日志

    SELECT *
    FROM fnd_log_messages
    WHERE user_id = 209122 /*your FND_USER user_id here*/
    AND TIMESTAMP > SYSDATE - .3
    ORDER BY log_sequence 

    注意:如果你要收集Concurrent Request的日志,可以用下边的SQL查fnd的日志

    select module, to_char(timestamp,'DD-MON-YYYY HH24:MI:SS'), message_text
    from fnd_log_messages
    where timestamp > sysdate - 2/24
    and process_id = (  select os_process_id from fnd_concurrent_requests where request_id = &request_id)
    and module like 'po%'


    什么样的日志会记录到fnd_log_messages表中

    使用fnd_log.STRING(log_level => fnd_log.level_statement,module    => 'xxpo.packagename.procedurename',message   => 'debug message here');记录的日志,在会在fnd_log_messages表中才能查到。到现在为止还有很多模块不是用fnd_log.STRING的方式来记录日志,还在使用utl_file.put_line来写日志到一个文件,比如inv模块。


    如果业务回滚了,那么记录到fnd_log_messages表中的日志是否也会回滚

    不会,fnd_log.string调用的procedure定义为pragma AUTONOMOUS_TRANSACTION (自治事务)里边有commit.所以日志不会被回滚掉。


    清理fnd_log_messages表

    fnd_log_messages表如果太大,肯定会影响性能,所以最好定期清理这张表,Oracle官方提供了一个program去清理这张表。11i这个program叫"Purge Debug Log and System Alerts",R12里改名字了,叫"Purge Logs and Closed System Alerts",需要在system admin职责下运行,这个program默认是scheduled to run daily,并清理7天前的log数据。program会清理以下这些表:
    FND_EXCEPTION_NOTES;
    FND_OAM_BIZEX_SENT_NOTIF;
    FND_LOG_METRICS;
    FND_LOG_UNIQUE_EXCEPTIONS;
    FND_LOG_EXCEPTIONS;
    FND_LOG_MESSAGES;
    FND_LOG_TRANSACTION_CONTEXT;
    FND_LOG_ATTACHMENTS
    这些表都是包含debug或者error信息
  • 相关阅读:
    求职经验丨应届毕业生,如何找到一份程序员工作呢?
    C++ 为什么能够流行几十年?C++ 之父为你揭晓答案!
    C/C++最大的祸害是什么?内存错误,舍它其谁!
    C语言丨关于结构体内存对齐,这份干货我收了,你随意~
    11月程序员平均工资又跌了?真是跌宕又起伏的一年!
    不熟悉C++面向对象?了解C++面向对象编程,看这篇够了!
    C++基础总结(六):C++进阶——模板和STL入门
    团队-团队编程项目作业名称-成员简介及分工
    Auto-close message box
    Adding a splash screen to your dialog based application
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299306.html
Copyright © 2020-2023  润新知