Soy desarrollador en una empresa cuyos productos se implementan en el extranjero. Cuando un equipo de soporte pregunta por una definición de problema, mis únicas herramientas para el diagnóstico son mis archivos de registro y una copia de la base de datos del cliente. Utilizando la base de datos y mi entorno de desarrollo, tengo la oportunidad de reproducir el caso erróneo, porque registro los datos entrantes en mi módulo y las acciones relacionadas. Si puedo reproducir el error con la ayuda de los datos que recopilo, entonces puedo solucionarlo con la depuración. Si no tuviera archivos de registro, entonces tendría que depender de la descripción del cliente o del equipo de soporte de lo que sucede en qué caso (que tiene una gran posibilidad de engaño).
En segundo lugar, el registro me da la oportunidad de detectar los cuellos de botella de mi módulo en el sitio implementado, ya que registro la fecha y la hora de ciertas acciones y luego puedo ver qué acción consume cuánto tiempo.
Además de eso, supongamos que nuestra solución consta de 6 módulos y estoy viendo registros de errores en mis archivos de registro sobre los tiempos de espera de la base de datos. Si estos errores también se registran en 5 de los otros módulos, la probabilidad de que se trate de un problema relacionado con el servidor SQL aumenta. Si esto se registra solo en mi módulo, entonces la probabilidad de que mis consultas tengan errores aumenta. Creo que este tipo de cosas son indicadores útiles.
El tipo de datos que veo en mis archivos de registro depende de la configuración del nivel de registro. Si se trata de un producto nuevo, establecemos el nivel de registro en "Todos" para recopilar la mayor cantidad de datos posible. Pero cuando mejoramos el producto, podemos preferir mantener el nivel de registro en "Error" para registrar solo el error, pero no los registros de nivel de información, etc.