Semantic 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 'elasticsearch'
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.

SemanticLogger.add_appender(
  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...

Yo dawg I heard you like Elasticsearch logging

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 comentarios

Dejar un comentario

Toasty!