4.2 Logs y Auditoría
OP_Framework dispone de un sistema de registro de eventos (log). Se dividen en dos tipos, los de seguimiento de la aplicación y los de auditoría.
Logs de Plataforma
Registran eventos y errores propios de la plataforma y sus aplicaciones. El registro se realiza en tres salidas diferentes. En un archivo de texto, en formato "FireBug" para FireFox y un Syslog.
Log en archivos de textoLa salida en archivo de texto se guarda en
OP_Framework/miplataforma/log/miplataforma.log, por lo tanto se crea un archivo diferente por cada plataforma. Cada evento resulta en una nueva línea en el archivo de log de la plataforma. Cada línea incluye la fecha y hora a la que se ha producido, el tipo de evento, el objeto que ha sido procesado y otros detalles relevantes que dependen de cada tipo de evento y/o objeto procesado. Un ejemplo de log podría ser el siguiente.
OP_Framework/miplataforma/log/miplataforma.log
//...
2008 07 14 10:47:16 OP [warning] {ayuntamiento} Open Populi logea en Firebug.
2008 07 14 10:47:16 OP [info] {ayuntamiento} APPLICATION: , MODULE: , ACTION: REDIRECTS TO:
http://intranet.openpopuli.com/ayuntamiento/backend/cliente
2008 07 14 10:47:16 OP [info] {op_view} inicialización de la vista con el
layout "ayuntamiento.tpl.php"
2008 07 14 10:47:16 OP [info] {op_view} render template "index.tpl.php"
2008 07 14 10:47:16 OP [info] {op_view} renderiza en el navegador
//...
Estos archivos de log contienen mucha información, como por ejemplo las plantillas que se han procesado, las llamadas realizadas entre objetos, etc
Niveles de prioridad Es la parte que aparece entre corchetes
"[]" y existen ocho niveles, los mismos que se definen en PEAR.
- EMERG
- El sistema está inutilizable.
- ALERT
- Requiere una acción inmediata.
- CRIT
- Condiciones críticas.
- ERR
- Condiciones de Error.
- WARNING
- Condiciones de Warning.
- NOTICE
- Normal pero significativa.
- INFO
- Informativo.
- DEBUG
- Mensajes a Nivel Debug.
Log de FireBugLos eventos de Log tambien se registran en el "FireBug" de FireFox. Es muy útil para ver las lineas de Log en tiempo real mientras se ejecuta una aplicación.
"Firebug" es una extensión (add-on) de Firefox creada y diseñada especialmente para desarrolladores y programadores web. Es un paquete de utilidades con el que se puede analizar (revisar velocidad de carga, estructura DOM), editar, monitorizar y depurar el código fuente, CSS, HTML y JavaScript de una página web de manera instantánea e “inline”.
Log en SysLogLos mensajes también se pueden enviar por SysLog
El protocolo syslog es muy sencillo, si existe un ordenador servidor ejecutando el servidor de syslog (demonio de syslog), nuestra aplicación enviará el mensaje de texto (de menos de 1024 bytes) a dicho servidor a través del puerto 514.
Los datos de configuración del servidor externo de Syslog se establecen en el archivo
OP_Framework/miplataforma./config/config.ini.php editando las siguientes líneas.
//...
[syslog]
host = 192.168.10.2;
port = 514;
//...
Añadir un mensaje de Log desde nuestra aplicaciónPara registrar un mensaje de log tenemos que obtener la instancia "op_log" del context y setear el mensaje usuando el método apropiado dependiendo el nivel de prioridad (EMERG, ALERT, CRIT, ERR, WARNING, NOTICE, INFO, DEBUG).
//...
$log = $op_context->getInstance()->getLog();
$log->info('Enviamos un mensaje informativo');
$log->warning('Enviamos un mensaje de prioridad "warning");
//...
Logs de Auditoría
Registran eventos relacionados con transacciones en Base de Datos. Registra todas las consultas SQL que tranforman el contenido de la Base de Datos.
Se guardan en el archivo
OP_Framework/miplataforma/logs/miplataforma.audit.log.
Podemos decidir en el archivo de configuración de plataforma
OP_Framework/miplataforma/config/config.ini.php si habilitamos o no los logs de auditoría editando una línea de éste archivo, como vemos a continuación.
OP_Framework/miplataforma/config/config.ini.php
//...
[audit]
enable = 1
//...
El valor 1 indica que está habilitado el Log de Auditoría y el valor 0 lo deshabilita.
El mensaje, en este caso la consulta SQL, se guarda codificada en
base64. A continuación vemos un ejemplo de archivo
miplataforma.audit.log.
OP_Framework/miplataforma
/log/miplataforma.audit.log
En esta versión de OP_Framework, el borrado y rotación de los archivos de Log se delega en el adminitrador del servidor. Tanto los logs de Plataforma como los de Auditoría
«««
Seguridad |
Debugging »»»