c++ boost logging boost-log

c++ - ¿Experiencia usando la biblioteca de registro Boost.Log?



logging boost-log (3)

Estoy considerando comenzar a utilizar la biblioteca de registro Boost.Log . ¿Alguien está usando Boost.Log? Por favor comparte tus experiencias al respecto.

Las otras bibliotecas que estoy considerando son Apache log4cxx (parece tedioso instalar pero mis compañeros de equipo quieren algo simple para empezar) y Pantheios (el mismo problema ya que funciona con un frente y un extremo posterior adicionales).


ACTUALIZACIÓN: estoy usando Boost.Log en un sistema de motor de juego y estoy muy contento con él. Es rápido, seguro para hilos y muy flexible cuando lo necesita.

Boost.Log se debe proporcionar con todas las bibliotecas de Boost en un próximo lanzamiento de este año (2013).

Boost.Log está hecho para configurar un sistema de registro sobre él. Si lee la documentación, verá que es tan flexible que cualquier sistema de registro que se le ocurra puede construirse con él (como iniciar sesión en una computadora distante).

Por lo tanto, hay macro para facilitar el uso en proyectos simples, pero creo que es el tipo de biblioteca que es útil sobre todo para las personas que realmente entienden el registro y desean construir una arquitectura específica para su aplicación.

Sobre el rendimiento, recuerdo que hubo problemas en la presentación que lo hicieron lento en comparación con otras bibliotecas de registro (menos flexibles), pero como era un borrador y la primera versión aún no está disponible, no me molestaría si no está codificando una aplicación de tiempo crítico.

Al final, creo que es simplemente demasiado "nuevo" para ser evaluado "ahora". No hay otra biblioteca de registro que sea tan flexible como esta y no estoy seguro de si mucha gente sentirá la necesidad de usarla.

Actualización: un reciente intercambio de correo electrónico con el autor de Boost.Log arroja algunos datos que sugieren que Boost.Log es claramente una excelente alternativa para el registro rápido.


Recientemente analicé la implementación de un sistema de registro en un proyecto que estaba comenzando.

Intenté log4cxx como lo mencionas, de hecho es muy tedioso de instalar. Me tomó varias horas compilarlo en VS2012 (con otras bibliotecas de dependencias ...), y luego se colgó cuando lo usé en mi proyecto. Sin duda, algunas cosas raras con las bibliotecas estándar no coinciden, pero no pudieron resolverlo.

Así que cambié a log4cpp, que me puse en funcionamiento en solo unos minutos. Lo encuentro elegante y liviano, justo lo que necesitaba. Tiene la gran ventaja de tener las mismas características que el conocido log4j & co. sistemas de registro que podrían ser una ventaja real para su trabajo en equipo (configuración a través del archivo de configuración, etc.)

En lo que respecta al rendimiento, se necesita una llamada de función para verificar si el registrador está activo para el nivel del mensaje, luego una llamada de función para realmente registrar los datos.

Con algunas macros caseras (para agregar mensajes de LINE & co.), Log4cpp realmente ha demostrado ser útil en mi proyecto.

Lamentablemente, no probé Boost.Log, así que no puedo hablar al respecto, pero espero que estos comentarios sigan siendo útiles para ti si eliges no utilizar Boost.Log.


ACTUALIZACIÓN : Desde que se escribió esto, reemplacé Boost.Log con mi propio registro personalizado, principalmente porque decidí deshacerme de todas las dependencias de Boost en todos mis proyectos por varias razones. Si estás de acuerdo con el uso de Boost, supongo que Boost.Log sigue siendo una opción válida a juzgar por la respuesta de Klaim .

Mi experiencia con Boost.Log en el año 2010 sigue.

He integrado exitosamente Boost.Log en mi motor de juego y solo puedo hablar cosas buenas al respecto. Claro, es un poco pronto para usar, ya que la versión 2 será la versión real que se convertirá en Boost.Log oficial.

Tenga en cuenta que la versión "1.0" disponible no se mantiene. Para recibir actualizaciones, debe usar la versión de borde sangrado (troncal) que puede volverse inestable. Tenga esto en cuenta si va a utilizar esta versión en cualquier proyecto serio. Si no tiene miedo de usar versiones de borde sangrante o rotura futura, vaya por ello. Es muy bueno de usar ya que está en su estado actual.

Durante mucho tiempo pensé que el sistema de registro jerárquico en log4j / log4cxx era superior, pero Boost.Log me hizo pensar lo contrario. El filtrado y los atributos son mucho más flexibles.

El diseño de los fregaderos separados por frontend / backend hace que sea muy fácil agregar backends adicionales. No necesita preocuparse por los problemas de sincronización o el filtrado que maneja la interfaz. La biblioteca también viene con muchos backends, archivos de rotación, consola, syslog, registro de eventos de Windows, etc.

He escrito mis propios backends de fregadero; uno va a la consola del juego y otro a un tipo de sistema de notificación para eventos más serios. Fue más fácil de lo que esperaba, lo tuve funcionando en solo unos minutos.

Por último, pero no menos importante, el desarrollador / desarrollador también es muy útil. Obtendrá mucha ayuda en los foros del proyecto. Él ha solucionado dos errores (de los cuales uno importante) solo este fin de semana que informé :-)