Semantic Logger - framework de logueo enriquecido para Ruby y Rails
Publicado el Viernes, 25 de junio de 2021Semantic Logger es un framework enriquecido de logueo que permite producir resultados legibles para humanos y para máquinas 🤖
Entre las características principales listan:
- Archivos de log con texto coloreado para que los humanos lo podamos leer.
- Archivos de log JSON con toda la información semántica para alimentar a las máquinas.
- Escribir a múltiples destinos a la misma vez
- Enviar los logs a un sistema centralizado de logueo, via JSON o adaptadores incluidos.
Como implementa la interfaz estándar de logueo de Ruby, se puede reemplazar el log normal con Semantic Logging. Lo probé con el cliente oficial de Elasticsearch para ver qué tal, sólo hay que pasarlo como parámetro al inicializador:
require 'semantic_logger'
SemanticLogger.default_level = :debug
SemanticLogger.add_appender(file_name: 'desarrollo.log', formatter: :color)
logger = SemanticLogger['elasticsearch-ruby'] #nombre de la aplicación
client = Elasticsearch::Client.new(logger: logger)
client.cluster.health
El archivo desarrollo.log
generado por la biblioteca se muestra con colores en la terminal al leerlo con cat
.
Tiene también un Appender para Elasticsearch (que usar el cliente oficial Ruby Elasticsearch), lo que nos permite redirigir los logs directamente a Elasticsearch a un índice del formato "nombre-fecha" (por defecto "semantic_logger-"%Y.%m.%d""
). Podemos especificar el nombre del índice, formato de fecha y más.
appender: :elasticsearch,
url: 'http://localhost:9200',
index: 'desarrollo-ruby'
)
logger = SemanticLogger['desarrollo-ruby']
logger.info('¡Hola Mundo!')
Con esto, podría usar el logger para una aplicación que usa el cliente Elasticsearch y redirigir los logs del cliente Elasticsearch a un clúster Elasticsearch a través del adaptador Elasticsearch que usa el cliente Elasticsearch y leer los logs con el cliente Ruby de Elasticsearch...
Hay muchas cosas más para aprender de Semantic Logging, lo podemos hacer en su sitio web, o visitar el código fuente en GitHub.
No hay comentarios en este post
Feed de comentariosDejar un comentario