emiherber/lambdasi-logs

Permite generar archivos logs de nuestra aplicación

v2.1.1 2025-04-13 04:18 UTC

This package is auto-updated.

Last update: 2025-06-13 04:42:32 UTC


README

Permite generar archivos logs de nuestra aplicación.

Para la versión 1.X.X ir aquí

Instalación

composer require emiherber/lambdasi-logs

Requerimientos

  • PHP >= 8.2
  • Se debe declara la siguiente constante __DR__ que indica donde se creara la carpeta lamlogs.

Uso

$log = new Logger(); $log->log(string $level, string $message, array $context = []);

  • $level:

    • Obligatorio
    • Indica indica el nivel de log que debe generar.
  • $message:

    • Obligatorio
    • Descripción adicional referencia al archivo o función donde se genero.
  • $context:

    • Opcional
    • Se puede pasar un array con los datos que produjo el log.
  • Variable de entorno: para usar la función alert y notificar a un chat de telegram. Es necesario crear lo siguiente:

    • TOKEN: Token del bot con el cual se va a enviar la notificación.
    • CHATID: Este puede ser el id de un usuario, grupo o canal.
    • TITULOSISTEMA: Aplicación desde donde se genera la notificación. Ideal si el mismo bot se usa para varias aplicaciones. En caso que no funcione algo se genera un archivo llamado un log del tipo debug-Ymd.log

Ejemplo:

require __DIR__.'/vendor/autoload.php';
use Emiherber\LambdasiLogs\Logger;
use Emiherber\LambdasiLogs\LogLevel;

define('__DR__', $_SERVER['DOCUMENT_ROOT'].'/lambdasi-logs/');

define('TOKEN', 'token_bot');
define('CHATID', 'id_destinatario_mensajes');
define('TITULOSISTEMA', 'nombre_aplicación');

try {
  test();
  echo 'log generado <br>';

} catch (\Throwable $th) {
  echo 'error al generar el log <br>';
  throw $th;
}

function test() {
  try {

    $valores = [
      'clave' => 'valor',
      'clave2' => 'valor2'
    ];

    throw new Exception('prueba2');

  } catch (\Throwable $th) {
    $log = new Logger();
    $log->log(LogLevel::DEBUG, 'test', compact('th'));
    $log->log(LogLevel::ERROR, 'test', ['th' => new Error('Error')]);
    $log->log(LogLevel::WARNING, $th->getMessage(), ['th' => new Exception('Exception')]);
    $log->warning($th->getMessage(), ['th' => new Exception('Exception')]);
    $log->alert($th->getMessage());
  }
}

Atención

Para los logs del LogLevel::ALERT se intentara enviar un mensaje a tu chat de Telegram. Si utiliza la forma $log->alert($th->getMessage(),[]); o $log->alert($th->getMessage());. Si usa $log->log(LogLevel::ALERT, 'test', compact('th')); solo se genera un archivo y no se envia una alerta.

Ubicación Log

Los logs se guardan en la carpeta lamlogs.

├── proyecto
│   ├── lamlogs

Licencia:

Esta librería se distribuye bajo la licencia The Unlicense. Puedes encontrar el texto completo de la licencia en el archivo LICENSE.

Autores

Emiliano Herber