ヘッダーをスキップ
Oracle® Application Express APIリファレンス
リリース4.1
B66452-01
  目次へ移動
目次

前
 
次
 

6 APEX_DEBUG_MESSAGE

APEX_DEBUG_MESSAGEパッケージには、デバッグ・メッセージ・ログを管理するためのユーティリティ・ファンクションが用意されています。具体的には、このパッケージには、APEXアプリケーションに含まれるPL/SQLコードおよびデータベース・ストアド・プロシージャとファンクション内のPL/SQLコードのインストルメントおよびデバッグに必要なAPIが提供されています。PL/SQLコードをインストルメントすると、より迅速にバグを追跡し、予期しない動作を特定することが容易になります。

パッケージには、様々なデバッグ・レベルでのデバッグを有効または無効にする手段、およびメッセージ・ログをクリーンアップするユーティリティ・プロシージャもあります。

『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のデバッグ・モードへのアクセスに関するセクションの説明を参照するか、またはAPEX_DEBUG_MESSAGESビューを問い合せることによって、メッセージ・ログを表示できます。

詳細は、個々のAPIの説明を参照してください。

トピック:


DISABLE_DEBUG_MESSAGESプロシージャ

このプロシージャは、デバッグ・メッセージを無効にするために使用します。

構文

APEX_DEBUG_MESSAGE.DISABLE_DEBUG_MESSAGES;

パラメータ

なし。

次の例に、デバッグ・メッセージを無効にする方法を示します。

BEGIN
    APEX_DEBUG_MESSAGE.DISABLE_DEBUG_MESSAGES();
END;

ENABLE_DEBUG_MESSAGESプロシージャ

このプロシージャは、デバッグ・メッセージを有効にします。重要性のレベルごとに、監視されるデバッグ・メッセージのタイプを指定できます。


注意:

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のパラメータ

パラメータ 説明

p_level

ログに記録するメッセージの1つ以上のレベル。1から7までの整数である必要があります。レベル1は重要度が最も高いメッセージで、レベル7(デフォルト)は重要度が最も低いメッセージです。特定のレベルを設定すると、そのレベルおよびそのレベルより下のメッセージが記録されます。たとえば、p_levelに3を設定すると、レベル1、2または3のメッセージが記録されます。


次の例に、レベル1、2および3のメッセージのロギングを有効にする方法を示します。レベル4、5、6および7のメッセージはログに記録されません。

BEGIN
    APEX_DEBUG_MESSAGE.ENABLE_DEBUG_MESSAGES(
        p_level => 3);
END;

LOG_MESSAGEプロシージャ

このプロシージャは、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のパラメータ

パラメータ 説明

p_message

ログ・メッセージ(最大サイズは4000バイト)。

p_enabled

デバッグが有効かどうかに関係なく、メッセージを常にログに記録するにはTRUEを設定します。デバッグが有効な場合にのみメッセージをログに記録するにはFALSEを設定します

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;

LOG_LONG_MESSAGEプロシージャ

このプロシージャは、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のパラメータ

パラメータ 説明

p_message

長いログ・メッセージ(最大サイズは32767バイト)。

p_enabled

デバッグが有効かどうかに関係なく、メッセージを常にログに記録するにはTRUEを設定します。デバッグが有効な場合にのみメッセージをログに記録するにはFALSEを設定します

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;

LOG_PAGE_SESSION_STATEプロシージャ

このプロシージャは、ページのセッション・ステートを記録するために使用します。

構文

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_page_id

現在のアプリケーションとワークスペース内のページを識別します。値がこのパラメータに渡されない場合、アプリケーションの現在のページが使用されます。

p_enabled

デバッグが有効かどうかに関係なく、メッセージを常にログに記録するにはTRUEを設定します。デバッグが有効な場合にのみメッセージをログに記録するにはFALSEを設定します

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;

REMOVE_DEBUG_BY_AGEプロシージャ

このプロシージャは、デバッグ・メッセージ・ログから指定日数より古いすべてのデータを削除するために使用します。

構文

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のパラメータ

パラメータ 説明

p_application_id

アプリケーションのアプリケーションID

p_older_than_days

データが削除される前に、デバッグ・メッセージ・ログに保持される日数。


次の例に、現在のアプリケーションに関するデバッグ・メッセージで、保持日数が3日以上になるものを削除する方法を示します。

BEGIN
    APEX_DEBUG_MESSAGE.REMOVE_DEBUG_BY_AGE (
        p_application_id  => TO_NUMBER(:APP_ID),
        p_older_than_days => 3 );
END;

REMOVE_DEBUG_BY_APPプロシージャ

このプロシージャは、デバッグ・メッセージ・ログから、指定アプリケーションに属するすべてのデータを削除するために使用します。

構文

APEX_DEBUG_MESSAGE.REMOVE_DEBUG_BY_APP (
    p_application_id    IN NUMBER);

パラメータ

表6-5では、REMOVE_DEBUG_BY_APPプロシージャで使用可能なパラメータについて説明します。

表6-6 REMOVE_DEBUG_BY_APPのパラメータ

パラメータ 説明

p_application_id

アプリケーションのアプリケーションID


次の例に、現在のアプリケーションに関してログに記録されたすべてのデバッグ・メッセージを削除する方法を示します。

BEGIN
    APEX_DEBUG_MESSAGE.REMOVE_DEBUG_BY_APP(
        p_application_id => TO_NUMBER(:APP_ID) );
END;

REMOVE_DEBUG_BY_VIEWプロシージャ

このプロシージャは、指定されたビューのすべてのデータをメッセージ・ログから削除するために使用します。

構文

APEX_DEBUG_MESSAGE.REMOVE_DEBUG_BY_VIEW (
    p_application_id    IN NUMBER,
    p_view_id           IN NUMBER);

パラメータ

表6-7では、REMOVE_DEBUG_BY_VIEWプロシージャで使用可能なパラメータについて説明します。

表6-7 REMOVE_DEBUG_BY_VIEWのパラメータ

パラメータ 説明

p_application_id

アプリケーションのアプリケーションID

p_view_id

ビューのビューID。


次の例に、現在のアプリケーションに属している、ビュー識別子が12345のデバッグ・メッセージを削除する方法を示します。

BEGIN
    APEX_DEBUG_MESSAGE.REMOVE_DEBUG_BY_VIEW (
        p_application_id => TO_NUMBER(:APP_ID),
        p_view_id        => 12345 );
END;

REMOVE_SESSION_MESSAGESプロシージャ

このプロシージャは、ワークスペース内の指定したセッションからのすべてのデータを、デバッグ・メッセージ・ログから削除するために使用します。

構文

APEX_DEBUG_MESSAGE.REMOVE_SESSION_MESSAGES (
    p_session    IN NUMBER  DEFAULT NULL);

パラメータ

表6-8では、REMOVE_SESSION_MESSAGESプロシージャで使用可能なパラメータについて説明します。

表6-8 REMOVE_SESSION_MESSAGESのパラメータ

パラメータ 説明

p_session

セッションID。デフォルトの設定は現在のセッションです。


次の例に、現在のセッションでログに記録されたすべてのデバッグ・メッセージを削除する方法を示します。注意: p_sessionパラメータの値が渡されないため、プロシージャではデフォルトで現在のセッションが使用されます。

BEGIN
    APEX_DEBUG_MESSAGE.REMOVE_SESSION_MESSAGES();
END;