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.