[pyar] tail -f con esteroides en Python para ver logs en tiempo real

Ivan Alejandro ivanalejandro0 en gmail.com
Mie Ago 25 11:32:38 ART 2010


2010/8/25 Roberto Alsina <ralsina en netmanagers.com.ar>:
> On Wednesday 25 August 2010 11:19:47 Alejandro Santos wrote:
>> 2010/8/25 Matias Moreno Meringer <mmoreno80 en gmail.com>:
>> > Juanjo Conti wrotes:
>> >> El problema es que el volumen de líneas por segundo es alto, por lo que
>> >> me gustaría aplicarle algún tipo de filtro y entonces poder hacer algo
>> >> como: mostrar solo las líneas que dicen ERROR.
>> >>
>> >> Entiendo que desde tail -f no puedo hacerlo, por lo que la idea es
>> >> escribir una version de tail con esteroides que me permita esto,
>> >> colorear la salida, etc...
>> >
>> > $ tail -f LOG | grep ERROR
>>
>> Si ninguna de las ultimas 10 lineas dice ERROR no te va a mostrar
>> nada, capaz sea mejor:
>>
>> $ cat LOG | grep ERROR | tail
>
> Pero eso te lee todo el log (que pueden ser X millones de lineas) y te muestra
> todos los errores en pantalla :-D

Ademas de ser posiblemente muchas lineas a leer, no muestra el
contenido del archivo de forma continua. Es decir, si se siguen
agregando lineas al log, no se mostraran.
Grep colorea (depende de la configuracion del sistema) las pabras que
coinciden con el patron.
Yo usaria "grep -i", que es case insensitive, por las dudas. Si queres
algun matching mas complicado, por ej con expresiones regulares, podes
usar egrep (creo que hace lo mismo que grep -e).

Te quedaria algo como:

$ tail -f tuarchivo.log | grep -i error


Facundo Batista:
«BTW, el otro día aprendí el "-F" en el tail.... es como el -f, pero te
sigue el nombre de archivo, no el file handler (o sea, si el log rota,
te sigue mostrando el actual).»
Gracias por el dato :)
Importante a tener en cuenta ya que algunos programas hacen eso de
rotar (Xorg por ej)

Saludos

-- 
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments



More information about the pyar mailing list