martes, 11 de noviembre de 2014

Función para escribir en un fichero log con PHP

Es habitual que cuando realizamos cualquier aplicación queramos guardar un log en fichero de texto plano de ciertas funciones o partes de nuestro código, bien sea para solucionar posibles errores, detectarlos o cualquier otra funcionalidad que le queramos aplicar. En nuestro caso lo usamos para llevar un registro de las consultas SQL que lanzamos sobre la base de datos y ver posibles problemas.

Desde hace tiempo utilizo esta sencilla función que os dejo aquí:

function writeLog($data) {
 list($usec, $sec) = explode(' ', microtime());
 $datetime = strftime("%Y%m%d %H:%M:%S",time());
 $msg = "$datetime'". sprintf("%06s",intval($usec*1000000)).": $data";
 $save_path = 'foo.txt';
 $fp = @fopen($save_path, 'a'); // open or create the file for writing and append info
 fputs($fp, "$msg\n"); // write the data in the opened file
 fclose($fp); // close the file
}

Después, la llamada a esta función se haría de una forma muy simple:

writeLog('Este es el primer log');

Y el resultado que nos aparecería en el fichero foo.txt sería este:

20141111 07:26:14'914062: Este es el primer log


2 comentarios:

  1. Y aquí tenemos otra bonita y útil función.

    Constructivamente hablando, decir que yo hubiera traducido los comentarios de la función, dado un formato mas entendible con la separación entre días,meses y año, a la fecha.

    Estupendo, Gracias!

    ResponderEliminar
    Respuestas
    1. Hola, justamente estaba buscando una función que hiciese esto. Gracias. Yo lo prefiero así ya que luego para ordenar y filtrar es más fácil.

      Saludos

      Eliminar