Helper Log.
Funciones para guardar errores, trazas en archivos

Code Helper

Helpers – Log – Errores y trazas en archivos

La gestión de los errores y poder guardar estos en un archivo para ser consultados posteriormente es una necesidad de cualquier proyecto.

Mediante esta librería podremos guardar los textos de los errores o simplemente nuestras trazas en archivos de texto plano.

Se crea un archivo por cada día.

/**
 * HelperLog.php
 * @author      Code Develium
 */

use Helpers\HelpString;


/**
 * Class HelperLog
 */
abstract class HelpLog
{
    /**
     * Guardamos una traza en un archivo.
     * Acepta múltiples parámetros formato sprintf con %1, %2, ...
     *
     * @param string $txt
     */
    public static function saveTrace($txt)
    {
        /* Ruta completa donde ubicar el archivo de logs */

        $archivoLogs = '../App/Logs/log-error-'.date('Y-m-d').'.txt';

        $argNum  = func_num_args();
        $argList = func_get_args();

        for ($i = 1; $i < $argNum; $i++) {
            $txt = HelpString::replaceFirst($txt, "%$i", $argList[ $i ]);
        }

        error_log('-->> ' . date('h:i:s') . $txt.PHP_EOL, 
                   3, 
                  $archivoLogs);
    }

    /**
     * Guardamos una traza en el archivo log del systema
     *
     * @param string $txt
     */
    public static function saveSystem($txt)
    {
        $argNum  = func_num_args();
        $argList = func_get_args();

        for ($i = 1; $i < $argNum; $i++) {
            $txt = HelpString::replaceFirst($txt, "%$i", $argList[ $i ]);
        }

        error_log('-->> '.$txt.PHP_EOL);
    }


    /**
     * Guardamos un error en un archivo de log un una ruta concreta.
     * Acepta múltiples parámetros formato sprintf con %1, %2, ...
     *
     * @param Exception $ex
     * @param           $txt
     */
    public static function saveExcepcion( Exception $ex, $txt ): void
    {
        /* Ruta completa donde ubicar el archivo de logs */

        $archivoLogs = '../App/Logs/log-error-'.date('Y-m-d').'.txt';

        $argNum  = func_num_args();
        $argList = func_get_args();

        for ($i = 2; $i < $argNum; $i++) {
            $txt = HelpString::replaceFirst($txt, "%$i", $argList[ $i ]);
        }

        error_log('-->> '.date('h:i:s').' ERR: '.$txt.PHP_EOL,
                   3, 
                  $archivoLogs);

        if (!empty($ex)) {
            error_log('-->> ' . date('h:i:s') . ' EXC: ' . 
                      $ex->getMessage() . PHP_EOL, 
                      3, 
                      $archivoLogs);
            error_log( '-->> ' . date('h:i:s') . ' EXC: ' .
                      $ex->getTraceAsString() . PHP_EOL,
                      3, 
                      $archivoLogs);
        }
    }

    /**
     * Guardamos un error en un archivo de log un una ruta concreta.
     * Acepta múltiples parámetros formato sprintf con %1, %2, ...
     *
     * @param $txt
     */
    public static function saveError( $txt ): void
    {
        /* Ruta completa donde ubicar el archivo de logs */

        $archivoLogs = '../App/Logs/log-error-'.date('Y-m-d').'.txt';

        $argNum  = func_num_args();
        $argList = func_get_args();

        for ($i = 1; $i < $argNum; $i++) {
            $txt = HelpString::replaceFirst($txt, "%$i", $argList[ $i ]);
        }

        error_log('-->> ' . date('h:i:s') . ' ERR: ' . 
                  $txt . PHP_EOL,
                  3, 
                  $archivoLogs);
    }

}