Icono del sitio Kiú

Niveles de depuración APEX

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:

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:

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.

Salir de la versión móvil