2009-11-15 10 views
50

Estoy en busca de un C++ marco de registro con las siguientes características:C++ sugerencias marco de registro

  • registros tienen un nivel de gravedad (información, advertencia, error, crítico, etc.)
  • registros están marcados con una nombre del módulo
  • marco tiene una IU (o CLI) para configurar para qué módulos realmente vamos a iniciar sesión en el archivo, y la gravedad mínima requerida para que un registro se escriba en el archivo.
  • tiene un visor que me permite busco por módulo, la gravedad, el nombre del módulo, el nombre de error, etc
+0

No tengo una respuesta, pero he buscado lo mismo a veces y no he encontrado uno me gusta. –

+0

use log4cxx de apache ... – pankajt

+0

ID de proceso e identificación de subprocesos son muy útiles para aplicaciones de subprocesos múltiples. – madrag

Respuesta

9

No está seguro acerca de la configuración de una interfaz de usuario o la CLI. He usado ambos marcos de registro en un punto u otro.

https://sourceforge.net/projects/log4cplus/
https://logging.apache.org/log4cxx/index.html

No sería demasiado duro para conducir su registro basado en un archivo de configuración que podría ser editable por la mano o por medio de una GUI o CLI aplicación rápida y sucia. Puede ser un poco más difícil ajustar estos dinámicamente pero no demasiado mal.

Actualización:

Parece que la Boost.Log propuesta está ahora en Boost 1.54 que está a una versión estable. Si ya estás usando Boost, no lo echaré un vistazo.

+23

No me gustan esas bibliotecas. Tienen fugas de memoria. Y el log4cxx requiere otras 5 cosas de apache para poder compilarse. –

+2

@m_pGladiator ¿Podría ampliar cómo/dónde se filtran? O incluso un enlace a algunos recursos que lo muestran (informes de errores ...)? – Dennis

5

No hay visualizador pero puede intentar pantheios. Lo he estado utilizando durante casi un año y estoy bastante contento con él.

1

Puede usar wxWidgets y usar su excelente class para iniciar sesión. Es bastante fácil y directo. Por ejemplo, puede crear un cuadro de diálogo que reúna todos sus registros (por ejemplo, wxLogError, wxLogMessage, wxLogDebug, etc.).

3

Si te preocupa el rendimiento, te sugiero que visites Pantheios. En particular, tiene very high performance, y puede usarse en combinación con otras bibliotecas de registro: actúa como una capa eficiente y segura para tipos entre la biblioteca de registro (como log4cxx) y el código de su aplicación.

4

Sugiero Pantheios, ya que es el único que es completamente seguro, y también es very efficient. Le impone un poco de trabajo al usuario, al seleccionar el "front-end" correcto y el "back-end", pero una vez que lo tiene funcionando, puede solucionarlo y olvidarlo.

No proporciona instalaciones sofisticadas de registro, p. laminados de archivos, pero eso es by design, porque está destinado a ser utilizado en combinación con otras bibliotecas de registro que tienen más funcionalidades (pero peor rendimiento/tipo de seguridad).

+2

Afirmar que es la "única" biblioteca de registro segura de tipo parece una exageración. ¿Puedes respaldar eso con algo de información? –

0

es un buen candidato en términos de perormance pero mi preferencia personal es P7 biblioteca. Mis pruebas internas (CPU i7-4870HQ, SSD) muestran que P7 es más rápido que Pantheios.

  • Pantheios escribe 1.8M logs líneas por segundo (tiempo de mensajes & texto)
  • P7 escribe 2.4M registra líneas por segundo (tiempo, hilo, núcleo de CPU, función, archivo, línea y mensaje de texto)
+0

¿puede ampliar sus usos? ¿Has tenido algún problema con P7? El desarrollo se movió desde el código de Google pero no se ha colocado en otra plataforma (por ejemplo, GitHub, BitBucket, etc.), ¿alguna idea de por qué? Se ve bien, pero me preocupa la comunicación y la visibilidad del proyecto. – Dennis

+0

** Usos **: aplicaciones de tiempo crítico, sistemas integrados, juegos. Útil para observar múltiples aplicaciones/dispositivos al mismo tiempo, especialmente cuando se usa la telemetría. ** puntos de dolor **: tal vez es el formato de registro como ("Valor =% d", myVal); Tiene que ser cuidadoso. ** GitHub, BitBucket **: no tengo idea, puede pedirle al autor. – Igor

+1

** Comunicación **: hasta donde sé, el protocolo de comunicación se basa en UDP y no hay cifrado por motivos de rendimiento. – Igor

Cuestiones relacionadas