Lanzamiento de la versión SeasLog 2.2.0, compatible con PHP 8

Dirección SeasLog:

PECL:  http://pecl.php.net/package/SeasLog

Github:  https://github.com/SeasX/SeasLog

Espejo doméstico: https://gitee.com/neeke/SeasLog

Dirección de SeasLogger (proyecto de paquete de compositor):

Github:  https://github.com/SeasX/seas-logger

Espejo doméstico: https://gitee.com/neeke/seas-logger

Dirección del paquete del compositor: https://packagist.org/packages/seasx/seas-logger

Registro de Chang

2.2.0

  • Soporte PHP8
  • Admite plataformas s390x y mips64
  • Corrija pérdidas de memoria al obtener nombres de archivos y números de línea

2.1.0

  • Soporte PHP7.4
  • Admite la función getBufferCount
  • Admite el uso de variables preestablecidas% B en plantillas para obtener valores de BasePath
  • Trim_wrap mejorado.
  • Solucionar el problema n  . ° 265
  • Solucione el problema de volcado del núcleo en algunos escenarios utilizando trace_performance
  • Solucione el problema al recibir errores de PHP antes de la inicialización del módulo
  • Solucione el problema de usar la macro de actualización php-stream en PHP7
  • Solucione el problema de que el archivo no se puede escribir después de que la transmisión se actualice en PHP7

2.0.2

  • El problema solucionado  # 175  admite la grabación automática de TopN para métodos lentos de PHP.

  • Corregido Corrige las variables preestablecidas en la plantilla  %C , admite Clase :: Acción.

1.9.1

  •  Problema solucionado  # 249 Agregue un caso de prueba de unidad y corrija el error de setLogger.

  • Solucionado Soluciona el error de compilación de mac osx.

1.9.0

  • Nueva característica  # 240  Método agregado SeasLog :: setRequestVariable (clave, valor), que puede ayudar a los usuarios a cambiar las variables preestablecidas de SeasLog cuando se utilizan marcos como swoole

  • Nueva función  # 243 El  primer parámetro del método Log admite el paso de matrices, como SeasLog :: debug (matriz).

  • El problema solucionado  # 110  admite el constructor, puede usar New SeasLog ().

  •  Problema solucionado  # 234  # 236 Soluciona el error de la función SeasLog :: analyzerDetail.

  • El problema solucionado  # 245  agrega casos de prueba unitarios para analyzerCount y analyzerDetail.

Tabla de variables preestablecidas de plantilla de registro

SeasLog proporciona las siguientes variables preestablecidas, que se pueden usar directamente en la plantilla de registro y se reemplazarán con los valores correspondientes cuando finalmente se genere el registro.

  • % Nivel L Nivel de registro.

  • % Información de registro de mensajes M.

  • % T-DateTime como 2017-08-16 19:15:02, afectado por seaslog.default_datetime_format.

  • % t-Marca de tiempo, como 1502882102.862, con una precisión de milisegundos.

  • % Q-RequestId distingue una sola solicitud. Si no se llama al método SeasLog :: setRequestId ($ string), el valor único generado por el método integrado char * get_uniqid () se utiliza cuando se inicializa la solicitud.

  • % H-HostName nombre de host.

  • % P-ProcessId ID de proceso.

  • % D-Domain: Nombre de dominio del puerto: número de puerto, como: 8080; en modo Cli, es cli.

  • % R-Request URI Solicitud de URI, como / app / user / signin; en el modo Cli, es el archivo de entrada, como CliIndex.php.

  • % m-Request Method Tipo de solicitud, como GET; el modo Cli es para ejecutar comandos, como / bin / bash.

  • % I-Client IP Origen del cliente IP; local en modo Cli. La prioridad del valor es: HTTP_X_REAL_IP> HTTP_X_FORWARDED_FOR> REMOTE_ADDR

  • % F-FileName: LineNo Nombre de archivo: Número de línea, como UserService.php: 118.

  • % U-MemoryUsage uso de contenido actual, byte de unidad. Llame a zend_memory_usage.

  • % u-PeakMemoryUsage valor pico de uso de contenido actual, byte unitario. Llame a zend_memory_peak_usage.

  • % C-Class :: Nombre de clase de acción :: nombre del método, como UserService :: getUserInfo.

  • Ruta% B-BasePath, como / var / log / www. Afectado por seaslog.default_basepath y setBasePath.

Por qué usar SeasLog

El registro de registro suele ser el registro en ejecución del sistema, software o aplicación. A través del análisis de registros, es conveniente que los usuarios comprendan las condiciones operativas del sistema o el software y las aplicaciones; si el registro de su aplicación es lo suficientemente rico, también puede analizar el comportamiento de los usuarios anteriores, las preferencias de tipo, la distribución geográfica u otra información adicional; El registro también se divide en varios niveles, por lo que puede analizar fácilmente el estado de salud de la aplicación, encontrar problemas a tiempo, localizar y resolver problemas rápidamente y remediar pérdidas.

Las funciones php error_log y syslog incorporadas son potentes y tienen un rendimiento excelente. Sin embargo, debido a varios defectos (error_log no tiene nivel de error, no tiene formato fijo, syslog no está dividido en módulos y se mezcla con los registros del sistema), la flexibilidad se reduce mucho y no puede cumplir con los requisitos de la aplicación.

La buena noticia es que hay muchas bibliotecas de registros de terceros que compensan las deficiencias anteriores, como log4php, plog, Analog, etc. (Por supuesto, también hay muchas clases de registros que se utilizan en proyectos). Entre ellos, log4php es el más famoso, bien diseñado, formato perfecto, documentación completa y potente. recomendar.

Sin embargo, log4php funciona muy mal en términos de rendimiento. La siguiente figura muestra la prueba de rendimiento concurrente ab de SeasLog y log4php (entorno de prueba: Ubuntu 12.04 independiente, CPU I3, memoria 16G, disco duro SATA 7200): 

Entonces, ¿existe una biblioteca de registros que cumpla con los siguientes requisitos:

  • Submódulo, subnivel

  • Configuración simple (preferiblemente sin configuración)

  • El formato del registro es claro y fácil de leer.

  • Aplicación sencilla y gran rendimiento

SeasLog nació como respuesta a esta demanda.

Lo que se proporciona actualmente

  • Registros de registro conveniente y estandarizados en proyectos PHP

  • Módulo y directorio de registro predeterminado configurable

  • Especifique el directorio de registro y obtenga la configuración actual

  • Análisis preliminar y marco de alerta temprana

  • Búfer de registro eficiente, depuración conveniente del búfer

  • Siga las especificaciones de la interfaz de registro PSR-3

  • Conéctese al puerto TCP y envíe registros en formato RFC5424

  • Conéctese al puerto UDP y envíe registros en formato RFC5424

  • Support RequestId para distinguir solicitudes

  • Personalización de la plantilla de registro de soporte

  • Registra automáticamente errores, excepciones y registros de rendimiento (método lento TopN)

Cual es el objetivo

  • Registros de registro convenientes y estandarizados

  • Análisis de registros masivo eficiente

  • Advertencia de registro configurable de varios canales

P: ¿Cuál es el rendimiento de SeasLog?

UN:

Cuando SeasLog no abre el búfer, SeasLog es: 8,6 veces de la función syslog (), 240 veces de la función file_put_contents (), 36 veces de fwrite () en un solo caso, 211 veces de fwrite () en un caso no único, monolog 41 veces cuando el búfer no está abierto; cuando SeasLog abre el búfer y buffer_size es 100, SeasLog es: 250 veces de la función syslog (), 6962 veces de la función file_put_contents (), 1052 veces del caso singleton fwrite (), fwrite ( ) 6127 veces en un caso no único, 118 veces cuando el monólogo está habilitado con búfer y el tamaño del búfer es 100.

P: ¿Qué variables preestablecidas proporciona la plantilla de registro SeasLog?

R: Se proporcionan lasSeasLog siguientes variables preestablecidas, que se pueden usar directamente en la plantilla de registro y se reemplazarán con los valores correspondientes cuando finalmente se genere el registro.

  • %L -Nivel Nivel de registro.
  • %M -Información de registro de mensajes.
  • %T -DateTime 2017-08-16 19:15:02se seaslog.default_datetime_formatve afectado, por ejemplo.
  • %t -Timetamp 1502882102.862, por ejemplo , exacto al número de milisegundos.
  • %Q -RequestId distingue una sola solicitud. Si no SeasLog::setRequestId($string)se llama a ningún método, static char *get_uniqid()el valor único generado por el método integrado se utiliza cuando se inicializa la solicitud .
  • %H -HostName El nombre de host.
  • %P -ProcessId ID de proceso.
  • %D -Dominio: Puerto nombre de dominio: lema, como www.cloudwise.com:8080; en modo Cli cli.
  • %R -Request URI Request URI, como /app/user/signin; archivo de entrada en modo Cli, como CliIndex.php.
  • %m -Request Method Tipo de solicitud, como GET; ejecutar comando en modo Cli, como /bin/bash.
  • %I -Ip de cliente IP de cliente de origen; en modo Cli local. La prioridad del valor es: HTTP_X_REAL_IP> HTTP_X_FORWARDED_FOR> REMOTE_ADDR
  • %F -FileName: LineNo Nombre de archivo: número de línea, por ejemplo UserService.php:118.
  • %U -MemoryUsage uso de contenido actual, byte de unidad. Llame zend_memory_usage.
  • %u -PeakMemoryUsage Valor máximo de uso de contenido actual, en bytes. Llame zend_memory_peak_usage.
  • %C -Clase :: Acción Nombre de clase :: Nombre del método, por ejemplo UserService::getUserInfo. Cuando no se use en una clase, registre el nombre de la función.
  • %B -BasePath path, p /var/log/www. Ej . Afectado por seaslog.default_basepathy setBasePath.

Supongo que te gusta

Origin www.oschina.net/news/127099/seaslog-2-2-0-released
Recomendado
Clasificación