APEX_DEBUG_MESSAGE
パッケージには、デバッグ・メッセージ・ログを管理するためのユーティリティ・ファンクションが用意されています。具体的には、このパッケージには、APEXアプリケーションに含まれるPL/SQLコードおよびデータベース・ストアド・プロシージャとファンクション内のPL/SQLコードのインストルメントおよびデバッグに必要なAPIが提供されています。PL/SQLコードをインストルメントすると、より迅速にバグを追跡し、予期しない動作を特定することが容易になります。
パッケージには、様々なデバッグ・レベルでのデバッグを有効または無効にする手段、およびメッセージ・ログをクリーンアップするユーティリティ・プロシージャもあります。
『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のデバッグ・モードへのアクセスに関するセクションの説明を参照するか、またはAPEX_DEBUG_MESSAGESビューを問い合せることによって、メッセージ・ログを表示できます。
詳細は、個々のAPIの説明を参照してください。
トピック:
このプロシージャは、デバッグ・メッセージを無効にするために使用します。
構文
APEX_DEBUG_MESSAGE.DISABLE_DEBUG_MESSAGES;
パラメータ
なし。
例
次の例に、デバッグ・メッセージを無効にする方法を示します。
BEGIN APEX_DEBUG_MESSAGE.DISABLE_DEBUG_MESSAGES(); END;
このプロシージャは、デバッグ・メッセージを有効にします。重要性のレベルごとに、監視されるデバッグ・メッセージのタイプを指定できます。
注意: ENABLE_DEBUG_MESSAGES プロシージャは、ページ・ビューまたはページ受入れごとに1回だけコールする必要があります。 |
構文
APEX_DEBUG_MESSAGE.ENABLE_DEBUG_MESSAGES ( p_level IN NUMBER DEFAULT 7);
パラメータ
表6-1では、ENABLE_DEBUG_MESSAGES
プロシージャで使用可能なパラメータについて説明します。
表6-1 ENABLE_DEBUG_MESSAGESのパラメータ
パラメータ | 説明 |
---|---|
|
ログに記録するメッセージの1つ以上のレベル。1から7までの整数である必要があります。レベル1は重要度が最も高いメッセージで、レベル7(デフォルト)は重要度が最も低いメッセージです。特定のレベルを設定すると、そのレベルおよびそのレベルより下のメッセージが記録されます。たとえば、 |
例
次の例に、レベル1、2および3のメッセージのロギングを有効にする方法を示します。レベル4、5、6および7のメッセージはログに記録されません。
BEGIN APEX_DEBUG_MESSAGE.ENABLE_DEBUG_MESSAGES( p_level => 3); END;
このプロシージャは、Application ExpressのPLSQLコンポーネント、またはPLSQLプロシージャおよびファンクションからデバッグ・メッセージを生成するために使用します。
構文
APEX_DEBUG_MESSAGE.LOG_MESSAGE ( p_message IN VARCHAR2 DEFAULT NULL, p_enabled IN BOOLEAN DEFAULT FALSE, p_level IN NUMBER DEFAULT 7);
パラメータ
表6-2では、LOG_MESSAGE
プロシージャで使用可能なパラメータについて説明します。
表6-2 LOG_MESSAGEのパラメータ
パラメータ | 説明 |
---|---|
|
ログ・メッセージ(最大サイズは4000バイト)。 |
|
デバッグが有効かどうかに関係なく、メッセージを常にログに記録するには |
p_level |
ログ・メッセージのレベルを識別します。1から7までの整数である必要があります。レベル1は重要度が最も高く、レベル7(デフォルト)は重要度が最も低くなります。 |
例
次の例に、レベル1、2および3のメッセージに関してデバッグ・メッセージ・ロギングを有効にし、レベル1のメッセージと変数値を表示する方法を示します。デバッグは明示的に有効になっており、このパラメータのデフォルト設定の無効よりも、この有効の設定のほうが優先されるため、p_enabled
パラメータを指定する必要はありません。
DECLARE l_value varchar2(100) := 'test value'; BEGIN APEX_DEBUG_MESSAGE.ENABLE_DEBUG_MESSAGES(p_level => 3); APEX_DEBUG_MESSAGE.LOG_MESSAGE( p_message => 'l_value = ' || l_value, p_level => 1 ); END;
このプロシージャは、Application ExpressのPLSQLコンポーネント、またはPLSQLプロシージャおよびファンクションからデバッグ・メッセージを生成するために使用します。このプロシージャは、LOG_MESSAGEと同様ですが、より長いメッセージのロギングが可能な点のみ異なります。このメッセージ・ログは、デバッグ出力で4,000の文字のチャンクに分割されます。1つのデバッグ・メッセージは4,000文字までに制限されているためです。
構文
APEX_DEBUG_MESSAGE.LOG_LONG_MESSAGE ( p_message IN VARCHAR2 DEFAULT NULL, p_enabled IN BOOLEAN DEFAULT FALSE, p_level IN NUMBER DEFAULT 7);
パラメータ
表6-2では、LOG_LONG_MESSAGE
プロシージャで使用可能なパラメータについて説明します。
表6-3 LOG_LONG_MESSAGEのパラメータ
パラメータ | 説明 |
---|---|
|
長いログ・メッセージ(最大サイズは32767バイト)。 |
|
デバッグが有効かどうかに関係なく、メッセージを常にログに記録するには |
p_level |
長いログ・メッセージのレベルを識別します。1から7までの整数である必要があります。レベル1は重要度が最も高く、レベル7(デフォルト)は重要度が最も低くなります。 |
例
次の例に、レベル1、2および3のメッセージに関してデバッグ・メッセージ・ロギングを有効にし、32767文字まで含むことができるレベル1のメッセージを表示する方法を示します。デバッグは明示的に有効になっており、このパラメータのデフォルト設定の無効よりも、この有効の設定のほうが優先されるため、p_enabled
パラメータを指定する必要はありません。
DECLARE l_msg VARCHAR2(32767) := 'Debug will output anything up to varchar2 limit'; BEGIN APEX_DEBUG_MESSAGE.ENABLE_DEBUG_MESSAGES(p_level => 3); APEX_DEBUG_MESSAGE.LOG_LONG_MESSAGE( p_message => l_msg, p_level => 1 ); END;
このプロシージャは、ページのセッション・ステートを記録するために使用します。
構文
APEX_DEBUG_MESSAGE.LOG_PAGE_SESSION_STATE ( p_page_id IN NUMBER DEFAULT NULL, p_enabled IN BOOLEAN DEFAULT FALSE, p_level IN NUMBER DEFAULT 7);
パラメータ
表6-4では、LOG_PAGE_SESSION_STATE
プロシージャで使用可能なパラメータについて説明します。
表6-4 LOG_PAGE_SESSION_STATEのパラメータ
パラメータ | 説明 |
---|---|
|
現在のアプリケーションとワークスペース内のページを識別します。値がこのパラメータに渡されない場合、アプリケーションの現在のページが使用されます。 |
|
デバッグが有効かどうかに関係なく、メッセージを常にログに記録するには |
p_level |
長いログ・メッセージのレベルを識別します。1から7までの整数である必要があります。レベル1は重要度が最も高く、レベル7(デフォルト)は重要度が最も低くなります。 |
例
次の例に、レベル1、2および3のメッセージに関してデバッグ・メッセージ・ロギングを有効にし、レベル1のメッセージをアプリケーションの現在のページのすべてのセッション・ステートを含めて表示する方法を示します。デバッグは明示的に有効になっており、このパラメータのデフォルト設定の無効よりも、この有効の設定のほうが優先されるため、p_enabled
パラメータを指定する必要はありません。また、この例ではアプリケーションの現在のページのセッション・ステート情報を示すだけであるため、p_page_id
を指定していません。
BEGIN APEX_DEBUG_MESSAGE.ENABLE_DEBUG_MESSAGES(p_level => 3); APEX_DEBUG_MESSAGE.LOG_PAGE_SESSION_STATE (p_level => 1); END;
このプロシージャは、デバッグ・メッセージ・ログから指定日数より古いすべてのデータを削除するために使用します。
構文
APEX_DEBUG_MESSAGE.REMOVE_DEBUG_BY_AGE ( p_application_id IN NUMBER, p_older_than_days IN NUMBER);
パラメータ
表6-5では、REMOVE_DEBUG_BY_AGE
プロシージャで使用可能なパラメータについて説明します。
表6-5 REMOVE_DEBUG_BY_AGEのパラメータ
パラメータ | 説明 |
---|---|
|
アプリケーションのアプリケーションID |
|
データが削除される前に、デバッグ・メッセージ・ログに保持される日数。 |
例
次の例に、現在のアプリケーションに関するデバッグ・メッセージで、保持日数が3日以上になるものを削除する方法を示します。
BEGIN APEX_DEBUG_MESSAGE.REMOVE_DEBUG_BY_AGE ( p_application_id => TO_NUMBER(:APP_ID), p_older_than_days => 3 ); END;
このプロシージャは、デバッグ・メッセージ・ログから、指定アプリケーションに属するすべてのデータを削除するために使用します。
構文
APEX_DEBUG_MESSAGE.REMOVE_DEBUG_BY_APP ( p_application_id IN NUMBER);
パラメータ
表6-5では、REMOVE_DEBUG_BY_APP
プロシージャで使用可能なパラメータについて説明します。
例
次の例に、現在のアプリケーションに関してログに記録されたすべてのデバッグ・メッセージを削除する方法を示します。
BEGIN APEX_DEBUG_MESSAGE.REMOVE_DEBUG_BY_APP( p_application_id => TO_NUMBER(:APP_ID) ); END;
このプロシージャは、指定されたビューのすべてのデータをメッセージ・ログから削除するために使用します。
構文
APEX_DEBUG_MESSAGE.REMOVE_DEBUG_BY_VIEW ( p_application_id IN NUMBER, p_view_id IN NUMBER);
パラメータ
表6-7では、REMOVE_DEBUG_BY_VIEW
プロシージャで使用可能なパラメータについて説明します。
例
次の例に、現在のアプリケーションに属している、ビュー識別子が12345のデバッグ・メッセージを削除する方法を示します。
BEGIN APEX_DEBUG_MESSAGE.REMOVE_DEBUG_BY_VIEW ( p_application_id => TO_NUMBER(:APP_ID), p_view_id => 12345 ); END;
このプロシージャは、ワークスペース内の指定したセッションからのすべてのデータを、デバッグ・メッセージ・ログから削除するために使用します。
構文
APEX_DEBUG_MESSAGE.REMOVE_SESSION_MESSAGES ( p_session IN NUMBER DEFAULT NULL);
パラメータ
表6-8では、REMOVE_SESSION_MESSAGES
プロシージャで使用可能なパラメータについて説明します。
例
次の例に、現在のセッションでログに記録されたすべてのデバッグ・メッセージを削除する方法を示します。注意: p_sessionパラメータの値が渡されないため、プロシージャではデフォルトで現在のセッションが使用されます。
BEGIN APEX_DEBUG_MESSAGE.REMOVE_SESSION_MESSAGES(); END;