Clase Log en PHP

Hola a todos, hoy os dejo una clase que podemos utilizar para diferentes proyectos.

En una aplicación web, viene muy bien trazar los pasos que realiza la aplicación para casos de errores o de que no este haciendo algo bien.

Con esta clase lo podemos hacer de una forma cómoda, vamos a ir haciéndola poco a poco.

Lo primero es crear la clase y sus atributos, en este caso seria una referencia al objeto. Usamos la función fopen para abrir el fichero.


<?php

class Log
{

    private $fileLog;

    function __construct($path)
    {
        $this->fileLog = fopen($path, "a");
    }
}

?>

Es recomendable cerrar el fichero cada vez que se deje de utilizar, para ello creamos un metodo para ello.


    function close()
    {
        fclose($this->fileLog);
    }

Y lo más importante es escribir el mensaje como tal lo haremos con un método mas. Añadimos el tipo, la fecha y el mensaje en sí.



    function writeLine($type, $message)
    {
        $date = new DateTime();
        fputs($this->fileLog, "[" . $type . "][" . $date->format('d-m-Y H:i:s') . "]: " . $message . "\n");
    }

Os dejo por aquí el ejemplo completo:


<?php

class Log
{

    private $fileLog;

    function __construct($path)
    {
        $this->fileLog = fopen($path, "a");
    }

    function writeLine($type, $message)
    {
        $date = new DateTime();
        fputs($this->fileLog, "[" . $type . "][" . $date->format('d-m-Y H:i:s') . "]: " . $message . "\n");
    }

    function close()
    {
        fclose($this->fileLog);
    }
}
?>

Veamos un ejemplo:


<?php

require_once 'Log.php';

define("ERROR_LOG", "E");
define("INFO_LOG", "I");

$log = new Log("log.txt");

$log->writeLine(ERROR_LOG, "Se ha producido un error");
$log->writeLine(INFO_LOG, "Mensaje de informacion");

$log->close();

?>

Este es el contenido del log:

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada.