Cakephp generar logs con $this->log();

Generar logs de datos en CakePHP es muy simple y útil con la función log() que es parte de la clase Object que es común para la mayoria de las clases de Cakephp. Esta función log se puede usar en el contexto de una clase de cake ya sea un Modelo, un Controlador, un componente, prácticamente lo que sea, y podrás generar logs con los datos que se desea.

La función log() toma dos parámetros. El primero es el mensaje que se desea escribir en el archivo de log. Por defecto, este mensaje de error es escrito en el log de errores ubicado en app/tmp/logs/error.log

//Ejecutando esto dentro de una clase CakePHP:

$this->log("Registro de datos");
 
//El resultado de esto se agrega a app/tmp/logs/error.log
 
2010-13-07 10:22:02 Error: Registro de datos

El segundo parámetro es usado para definir el tipo de log con el se quiere escribir el mensaje. Si no se suministra, el valor por defecto es LOG_ERROR, el cual escribe en el log de errores previamente mencionado. Como alternativa, Se puede establecer este segundo parámetro a LOG_DEBUG, para escribir su mensaje en el log de depuración ubicado en app/tmp/logs/debug.log:

///Ejecutando esto dentro de una clase CakePHP: 

$this->log('Un mensaje de depuración.', LOG_DEBUG); 

//El resultado de esto se agrega a app/tmp/logs/debug.log (en lugar de error.log) 

2010-13-07 10:22:02 Error: Un mensaje de depuración.

Tambien puedes crear tus propios archivos de log. Especificando en el segundo parámetro el nombre del log que quieres generar.
Por ejemplo yo genero un log de las veces que los administradores se logean en el back-end


// Aqui toda la lógica para logear en el back-end ...

// lanzo el registro del log

$this->log('log de usuario '.$_SESSION['Admin']['user'],'login_backend');

//El resultado de esto se agrega a app/tmp/logs/login_backend.log

2010-13-07 10:22:02 login_backend: log de usuario XXXX

Fuente: http://book.cakephp.org/view/159/Using-the-log-function

Una respuesta a “Cakephp generar logs con $this->log();”

  1. Hola Pedro, este pequeño codigo esta muy bueno, lo estoy usando, pero tengo una pequeña duda, en el log guardo todo un array y la verdad estaba bastante extenso, la pregunta seria : como guardo en el log solamente 1 dato de todo ese array?

    Aqui mi codigo :

    $this->log($this->paginate(‘Comprobante’,array(‘Comprobante.id’=>$id)),’hiss’);

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *