En APEX tenemos diferentes niveles de mensajes de depuración, ahora lo estoy usando muchísimo para depurar los reportes que estoy trabajando con el plugin de APEX Office Print y poder ver los mensajes de AOP 🙂
Como sabemos en la sintaxis de la URL de APEX podemos activar o desactivar la depuración en el quinto argumento:
Por ejemplo:
f?p=App:Page:Session:Request:Debug:ClearCache:itemNames:itemValues:PrinterFriendly
El argumento Debug: muestra los detalles de procesamiento de la aplicación. Los valores válidos para este indicador incluyen:
- YES
- LEVELn
- NO
Al establecer este indicador en YES, se muestran detalles sobre el procesamiento de la aplicación. Ahora si establecemos este indicador en LEVELn (donde n está entre 1 y 9) controla el nivel de detalle de depuración que se muestra. El valor de YES es igual a LEVEL4.
Podemos hacer referencia al indicador de depuración utilizando la siguiente sintaxis:
- Cadena de sustitución corta: &DEBUG.
- PL/SQL: V(‘DEBUG’)
- Variable Bind: :DEBUG
El paquete APEX_DEBUG proporciona funciones de utilidad para administrar el registro de mensajes de depuración. Específicamente, este paquete nos proporciona las API necesarias para instrumentar y depurar el código PL/SQL contenido en nuestra aplicación APEX, así como el código PL/SQL en los procedimientos y funciones almacenados en la base de datos.
Si echamos un vistazo a la especificación del paquete, podemos ver el significado de cada nivel (aunque faltan los niveles 3 y 7).
Constantes usadas en el pkg:
subtype t_log_level is pls_integer; c_log_level_error constant t_log_level := 1; -- critical error c_log_level_warn constant t_log_level := 2; -- less critical error c_log_level_info constant t_log_level := 4; -- default level if debugging is enabled (for example, used by apex_application.debug) c_log_level_app_enter constant t_log_level := 5; -- application: messages when procedures/functions are entered c_log_level_app_trace constant t_log_level := 6; -- application: other messages within procedures/functions c_log_level_engine_enter constant t_log_level := 8; -- Application Express engine: messages when procedures/functions are entered c_log_level_engine_trace constant t_log_level := 9; -- Application Express engine: other messages within procedures/functions
Podemos establecer este nivel al agregar mensajes de depuración manualmente mediante el procedimiento apex_debug.message.