Gracias por su tiempo y lo siento por este largo mensaje!¿Cuál es su estrategia para escribir registros en su software para hacer frente a una cantidad ENORME de mensajes de registro?
Mi ambiente de trabajo
Linux C/C++ (pero soy nuevo en plataforma Linux)
Mi pregunta en breve
En el software que estoy trabajando escribimos un montón de mensajes de registro a los archivos locales que hacen que el tamaño del archivo crezca rápidamente y finalmente agota todo el espacio en disco (¡ay!). Queremos estos mensajes de registro para la resolución de fallas, especialmente después de que el software se haya lanzado al sitio del cliente. Creo que, por supuesto, es inaceptable ocupar todo el espacio en disco de la computadora del cliente, , pero no tengo una buena idea de cómo manejar este. Entonces Me pregunto si alguien tiene alguna buena idea aquí. Más información va abajo
Lo que NO estoy preguntando
1). Estoy NO solicitando una biblioteca de registro de C++ recomendada. Nosotros escribimos un registrador nosotros mismos.
2). Estoy NO preguntando qué detalles (como marca de tiempo, ID de hilo, nombre de función, etc.) deben escribirse en un mensaje de registro. Se pueden encontrar algunas sugerencias here.
Lo que he hecho en mi software
separo los mensajes de registro en 3 categorías:
SISTEMA: Sólo ingrese los pasos importantes en mi software. Ejemplo: una invocación externa al método de interfaz de mi software. La idea detrás de estos mensajes es que pudimos ver lo que generalmente está sucediendo en el software. Hay no hay muchos mensajes.
ERROR: solo registre las situaciones de error, como que no se encuentre una ID. Por lo general, no son muchos tales mensajes.
INFORMACIÓN: Registre los pasos detallados que se ejecutan dentro de mi software. Por ejemplo, cuando se llama a un método de interfaz, se escribe un mensaje de registro del sistema como se menciona anteriormente, y la rutina de llamada completa en los módulos internos dentro del método de interfaz se grabará con mensajes INFO. La idea detrás es que estos mensajes podrían ayudarnos a identificar la pila de llamadas detallada para la solución de problemas o la depuración. Esta es la fuente del problema use-up-disk-space: Siempre hay TAN MUCHOS mensajes INFO cuando el software se ejecuta normalmente.
Mis intentos y pensamientos
1). Intenté no grabar ningún mensaje de registro INFO. Esto resuelve el problema de espacio en disco pero también pierdo mucha información para la depuración.Piense en esto: Mi cliente está en una ciudad diferente y es caro ir allí a menudo. Además, usan una intranet que es 100% inaccesible desde el exterior. Por lo tanto: no siempre podemos enviar ingenieros en el sitio tan pronto como encuentren problemas; no podemos iniciar una sesión de depuración remota. Por lo tanto, los archivos de registro, creo, son la única forma en que podríamos utilizar para descubrir la raíz del problema.
2). Tal vez podría hacer la estrategia de registro configurable en tiempo de ejecución (actualmente es antes de que se ejecute el software), es decir: en tiempo de ejecución normal, el software solo registra registros de SISTEMA y ERROR; cuando surge un problema, alguien puede cambiar la configuración de registro para que los mensajes INFO puedan registrarse. Pero aún así: ¿quién podría cambiar la configuración en tiempo de ejecución? Tal vez deberíamos educar al administrador de software?
3). Tal vez siempre podría activar el inicio de sesión del mensaje INFO pero empacar periódicamente los archivos de registro en un paquete comprimido. Hmm ...
Finalmente ...
¿Cuál es su experiencia en sus proyectos/trabajo? ¡Cualquier pensamiento/idea/comentario es bienvenido!
EDITAR
Gracias por todo su esfuerzo !!! Aquí hay un resumen de los puntos clave de todas las respuestas a continuación (y voy a intentarlo):
1). No use archivos de registro grandes. Use los relativamente pequeños.
2). Trate periódicamente con los más antiguos (elimínelos o zip y colóquelos en un almacenamiento más grande).
3). Implementar una estrategia de registro configurable en tiempo de ejecución.
para la rotación de registros, consulte http://linux.about.com/od/commands/l/blcmdl8_logrota.htm – stefaanv