Esta página ha sido traducida por la comunidad y puede no estar actualizada. Consulta la versión de referencia.

Esta página ha sido traducida por la comunidad y puede no estar actualizada. Consulta la versión de referencia.

Esta página ha sido traducida por la comunidad y puede no estar actualizada. Consulta la versión de referencia.

Funciona con
Registro de actividad

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.

Editar esta página