Home > Advanced Programming Techni... > Creating Custom Activity Re...
The APEX_ACTIVITY_LOG
view records all activity in a workspace, including developer activity and application run-time activity. You can use APEX_ACTIVITY_LOG
to view to query all activity for the current workspace. For example, you can use this view to develop monitoring reports within a specific application to provide real-time performance statistics.
Table: Columns in APEX_ACTIVITY_LOG describes the columns in the APEX_ACTIVITY_LOG
view.
Columns in APEX_ACTIVITY_LOG
Column | Type | Description |
---|---|---|
|
DATE |
Date and time that activity was logged at the end of the page view. |
|
VARCHAR2(255) |
Reserved for future use. |
|
VARCHAR2(255) |
Reserved for future use. |
|
VARCHAR2(4000) |
Title of page. |
|
VARCHAR2(4000) |
Reserved for future use. |
|
NUMBER |
Elapsed time of page view in seconds. |
|
NUMBER |
Number of rows processed on page. |
|
VARCHAR2(255) |
User ID performing page view. |
|
VARCHAR2(4000) |
IP address of client. |
|
VARCHAR2(4000) |
Web browser user agent of client. |
|
NUMBER |
Application ID. |
|
NUMBER |
Page number. |
|
NUMBER |
Oracle Application Express session identifier. |
|
VARCHAR2(4000) |
SQL Error message. |
|
VARCHAR2(255) |
Reserved for future use. |
|
VARCHAR2(255) |
Reserved for future use. |
To conserve space in the activity log, only the first log entry of each unique session will contain the IP address and Web browser user agent.
The following example demonstrates how to create a report that displays the total number of page views and the average page view time in the past 24 hours for application 9529, and grouped by userid:
SELECT COUNT(*), AVG(elap), userid FROM APEX_ACTIVITY_LOG WHERE time_stamp > (SYSDATE-1) AND flow_id = 9529 GROUP BY userid
Keep in mind that logging of activity in an Oracle Application Express instance is rotated between two different log tables. Because of this, logging information is only as current as the oldest available entry in the logs. If you wish to persist your application specific log information for all time, you need to either copy the log information into your own application table or implement logging directly in your application.