Files
archived-frankenphp/docs/es/logging.md
2026-03-03 11:41:21 +01:00

2.9 KiB

Registro de actividad

FrankenPHP se integra perfectamente con el sistema de registro de Caddy. Puede registrar mensajes usando funciones estándar de PHP o aprovechar la función dedicada frankenphp_log() para capacidades avanzadas de registro estructurado.

frankenphp_log()

La función frankenphp_log() le permite emitir registros estructurados directamente desde su aplicación PHP, facilitando la ingesta en plataformas como Datadog, Grafana Loki o Elastic, así como el soporte para OpenTelemetry.

Internamente, frankenphp_log() envuelve el paquete log/slog de Go para proporcionar funciones avanzadas de registro.

Estos registros incluyen el nivel de gravedad y datos de contexto opcionales.

function frankenphp_log(string $message, int $level = FRANKENPHP_LOG_LEVEL_INFO, array $context = []): void

Parámetros

  • message: El string del mensaje de registro.
  • level: El nivel de gravedad del registro. Puede ser cualquier entero arbitrario. Se proporcionan constantes de conveniencia para niveles comunes: FRANKENPHP_LOG_LEVEL_DEBUG (-4), FRANKENPHP_LOG_LEVEL_INFO (0), FRANKENPHP_LOG_LEVEL_WARN (4) y FRANKENPHP_LOG_LEVEL_ERROR (8)). Por omisión es FRANKENPHP_LOG_LEVEL_INFO.
  • context: Un array asociativo de datos adicionales para incluir en la entrada del registro.

Ejemplo

<?php

// Registrar un mensaje informativo simple
frankenphp_log("¡Hola desde FrankenPHP!");

// Registrar una advertencia con datos de contexto
frankenphp_log(
    "Uso de memoria alto",
    FRANKENPHP_LOG_LEVEL_WARN,
    [
        'uso_actual' => memory_get_usage(),
        'uso_pico' => memory_get_peak_usage(),
    ],
);

Al ver los registros (por ejemplo, mediante docker compose logs), la salida aparecerá como JSON estructurado:

{"level":"info","ts":1704067200,"logger":"frankenphp","msg":"¡Hola desde FrankenPHP!"}
{"level":"warn","ts":1704067200,"logger":"frankenphp","msg":"Uso de memoria alto","uso_actual":10485760,"uso_pico":12582912}

error_log()

FrankenPHP también permite el registro mediante la función estándar error_log(). Si el parámetro $message_type es 4 (SAPI), estos mensajes se redirigen al registrador de Caddy.

Por omisión, los mensajes enviados a través de error_log() se tratan como texto no estructurado. Son útiles para la compatibilidad con aplicaciones o bibliotecas existentes que dependen de la biblioteca estándar de PHP.

Uso

error_log("Fallo en la conexión a la base de datos", 4);

Esto aparecerá en los registros de Caddy, a menudo con un prefijo que indica que se originó desde PHP.

Tip

Para una mejor observabilidad en entornos de producción, prefiera frankenphp_log() ya que permite filtrar registros por nivel (Depuración, Error, etc.) y consultar campos específicos en su infraestructura de registro.