Este post está patrocinado por Germán García de la quesería artesanal gallega Cortes de Muar. Si no has probado sus quesos, algunos de ellos con premios internacionales, ya estás tardando porque son espectaculares (y hablo con conocimiento de causa 😊). Germán ha donado 100€ para el banco de alimentos en mi iniciativa "¿Te he ayudado? Ayúdame a ayudar a otros". ¡Muchas gracias Germán! ¿Y tú, a qué esperas para echar un cable?
Lo habitual es que manejemos archivos de texto de pequeño tamaño, especialmente de código, Markdown y similares, que no suelen ocupar más de unas pocas Kb. Pero si debemos trabajar con servidores y aplicaciones que generan mucha información, los logs pueden llegar a ocupar cientos de megas o gigas. No sólo eso, sino que además podemos necesitar abrirlos cuando se están generando.
Por ejemplo, un servidor Web en producción, puede generar cientos de miles de líneas de log en una hora, dependiendo del nivel de log que establezcamos, generando archivos de texto que "pesan" un montón de megabytes. Toda esa información no nos vale de mucho sino podemos analizarla de manera ágil y rápida, buscar de manera avanzada (con expresiones regulares) sobre ella, destacar en otro color ciertas cosas...
Para el manejo de logs existen herramientas especializadas que te permiten incluso lanzar consultas SQL contra ellas para obtener información, pero en la mayoría de los casos lo único que vamos a necesitar es poder abrir rápidamente los archivos y buscar dentro de ellos.
Aunque hay editores como Notepad++ o incluso Visual Studio Code que permiten abrir archivos extremadamente grandes, lo cierto es que tardan muchísimo tiempo en hacerlo y los cargan en memoria, por lo que te pueden llegar a "petar" el sistema con tanta información.
En este post te voy a comentar 5 herramientas gratuitas especializadas en archivos grandes de texto (archivos de log), que te van a permitir abrir tus archivos gigantescos de manera instantánea (o casi), para luego poder buscar en ellos, editarlos, y muchas otras cosas. Vamos a ello...
Estos son los que yo conozco y he utilizado, pero seguro que hay algunos más que desconozco. Si tienes alguno favorito, siéntete libre de ponerlo en los comentarios para que los descubran otras personas. No te limites a poner un enlace: cuéntanos porqué son mejores (o al menos igual de útiles) que los que pongo yo aquí. ¡Gracias!
En realidad este editor no es específico para archivos de log o archivos grandes y, de hecho, tiene un límite de 2Gb en el tamaño máximo de los archivos que puede abrir. Pero, aunque se trata de un editor de propósito general que vale para editar todo tipo de archivos de texto y de código, tiene la particularidad de que es rapidísimo abriendo archivos enormes (de, insisto, hasta 2Gb: suficiente para la mayor parte de los casos) y con líneas muy largas. Los abre instantáneamente y luego te deja editarlos, buscar sobre el contenido usando cadenas fijas o expresiones regulares. También es capaz de abrir varios archivos a la vez, usar diferentes codificaciones, copias de seguridad automáticas para que no estropees nada por error... Es casi un sustituto de Notepad++ (pero solo casi).
Una cosa a tener en cuenta: el software es gratuito para uso personal, pero si lo usas a menudo para el trabajo deberás comprar una licencia que cuesta algo menos de 25€ (no es dinero si lo usas a menudo y ayudas a su desarrollo futuro).
Vale, otro que en realidad no es específicamente un analizador de logs. Es más: es relativamente lento en abrir los archivos grandes (5 o 6 segundos para abrir el log anterior de 470 MB), no como el anterior, y consume bastante memoria al abrirlos. Pero a pesar de ello es muy recomendable por varios motivos:
- Si marcas la opción
Follow Tail
que se ve en la figura siguiente, te permite hacer seguimiento de la cola del archivo, es decir, en archivos de log que están en funcionamiento, te deja estar viendo en tiempo real las nuevas líneas que se añaden.
- La búsqueda está muy bien, con expresiones regulares, pero es que además te permite resaltar automáticamente las líneas que contienen los términos de búsqueda, de modo que las puedes localizar visualmente mucho más rápido, pudiendo usar un color diferente según la palabra o palabras buscadas. Es la herramienta que encontrarás en
Options > Highlighting and Triggers
.
- La opción Columnizer (en
Options > Columnizer
), te deja importar los logs que están en ciertos formatos (por ejemplo, los logs habituales de servidores web) en formato de tabla Como si fuera una hoja de cálculo, vamos. Esto nos permite mayor facilidad para analizar y buscar la información que necesitamos.
- Se acuerda siempre de dónde estabas cuando abres de nuevo un mismo archivo. Esto parece una tontería pero te puede ahorrar muchísimo tiempo.
- Te deja abrir varios logs a la vez y analizarlos todos en paralelo.
- Admite plugins.
- Es Open Source, aparte de gratuito.
Este es un clásico para estos menesteres. Se trata de un "fork" del conocido proyecto glogg, pero lo mejora con mayor rapidez, uso demúltiples "cores" para procesar expresiones regulares, detección de codificación de archivos, y varias cosas más.
Es una aplicación multiplataforma (Windows, Linux, macOS), portable (no necesitas instalarla si no quieres), y pensada específicamente para ser muy rápida cargando los archivos y usar poca memoria, ya que lee los archivos directamente de disco sin cargarlos en memoria. Te deja localizar cosas en los archivos usando expresiones regulares, con la opción de poder ver las coincidencias en un panel aparte del archivo, para poder manejar archivos y resultados por separado. Como el anterior, también tiene la posibilidad de crear lo que llama "Highlighters" que permiten marcar de una determinada forma los resultados de una búsqueda, resaltando visualmente lo que te interese para encontrarlo rápido. También vigila en tiempo real cambios en el archivo de modo que si se añaden más líneas mientras los tienes abiertos, las carga en el editor (opción Follow File
que muestro en la siguiente captura).
Tiene una interfaz bastante espartana y básica, pero hace bien su función.
¿Recuerdas el mítico Total Commander, el gestor de archivos que los más nostálgicos todavía usan para sustituir al que trae Windows? Bueno, pues resulta que su visor integrado de archivos, Lister, está disponible como una herramienta independiente, y es estupenda para el propósito que nos ocupa: abrir grandes archivos de texto.
Es una herramienta muy minimal y que sólo te permitirá leerlos y buscar en ellos, pero no modificarlos (algo que, de todos modos, casi nunca querrás hacer en un archivo de log). Carga los archivos instantáneamente sin consumir memoria y te permite hacer búsquedas dentro de ellos usando expresiones regulares. Es un único ejecutable independiente que ocupa 484Kb (mínimo y reducido).
También tiene extensiones (haz un poco de scroll para encontrar la sección de Lister) que nos permiten usarlo con más tipos de archivos, como por ejemplo hojas de Excel o bases de datos basadas en archivos.
Pocos fuegos artificiales y muy ligero: esas son sus principales ventajas.
Este es un clásico de 2009, ya desaparecido pero muy útil todavía. Aunque la web de Tie-Qi Chen, su autor y profesor de la Universidad de DearBorn en Michigan, está desaparecida desde 2014, por suerte existe el archivo de internet para acceder a ella. Aunque es antiguo y ahora tenemos más opciones como las que he puesto arriba, siempre ha sido uno de los más utilizados en Windows y me gusta tenerlo en la lista. Está diseñado para cargar instantáneamente archivos de texto enormes e indexarlos en segundo plano para hacer búsquedas instantáneas. Soporta archivos abiertos y en uso y puedes ver los añadidos a medida que ocurren. Te deja ver el mismo archivo en formato dividido de manera que puedas ver dos partes del mismo a la vez, lo cual es muy útil. Las búsquedas pueden ser a partir de expresiones regulares (con unas pequeñas variaciones sobre lo estándar) y ya te da algunas comunes hechas para acelerar el trabajo. finalmente, si abres un archivo CSV, cuando te colocas encima de algún campo te pone el nombre del mismo para no tener que hacer números para saber qué dato concreto estás viendo. También es muy personalizable en aspecto (el aspecto por defecto es supermacarra con una calavera sobre fondo negro 😆). Otra cosa chula que tiene son los botones para saltar hacia adelante o hacia atrás de 10 mil o 1 millón líneas de golpe, que está bien para archivos enormes con mucha regularidad, para poder "escanearlos".
En definitiva, al igual que Lister, es un programa superligero (572KB) que hace una sola cosa y la hace muy bien.
En resumen
Cuando tenemos que lidiar con archivos de texto enormes, típicos de los logs de aplicaciones, no podemos apoyarnos en un editor convencional ya que no están pensados para eso y es probable que se cuelguen, o que tarden muchísimo en hacer cualquier cosa con ellos. Por suerte disponemos de algunos programas especializados, gratuitos y en muchos casos de código abierto, que nos permiten abrir instantáneamente los archivos, hacer búsquedas en ellos, resaltar cosas y analizarlos, permitiendo además recibir más datos en tiempo real a medida que se producen.
En este post he repasado los 5 que yo conozco y que siempre me han ido muy bien.
¡Espero que te resulten útiles!