Coloree la cola de los registros de Apache

Respuestas:

10

Estoy usando multitail para monitorear registros, incluye coloración y monitoreo de múltiples archivos de registro ya sea combinados o en Windows. Darle una oportunidad.

onik
fuente
9

Cualquier razón por la que no puedes usar algo como esto:

tail -f FILE | grep --color=always KEYWORD

fuente: commandlinefu.com

JamesBarnett
fuente
¿Lo probaste? No produce nada para mí.
SabreWolfy
Esto también filtra la salida, por lo que cualquier línea sin KEYWORDse ignorará.
Michal Mau
El OP parece estar implicando que está buscando una palabra clave o palabras. A menos que el archivo sea de naturaleza multilínea (que los registros de apache generalmente no lo son), esta respuesta es suficiente.
Garrett
4

Encontré esto: http://fixunix.com/unix/83044-tail-color.html

tail -f file | perl -pe 's/keyword/\e[1;31;43m$&\e[0m/g'

Esto solo funciona en terminales ANSI, pero todos los demás se han extinguido prácticamente. \ e [...] es la secuencia de escape ANSI SGR "seleccionar representación gráfica". El "..." se puede reemplazar por algunos enteros separados por punto y coma, con el significado:

0: todos los atributos desactivados 1: negrita 31: primer plano rojo 43: fondo amarillo

"palabra clave", por supuesto, puede ser cualquier expresión regular perl:

(foo | bar) resalta las cadenas foo y bar \ b ((foo | bar) \ b resalta las palabras foo y bar. \ b ((foo | bar) \ b. resalta toda la línea que contiene las palabras foo o bar

O, de la manera fácil, simplemente instale colortailEs probablemente en su repositorio favorito (dag para CentOS)

http://developwithstyle.com/articles/2010/04/20/tail-your-logs-with-a-touch-of-color.html

http://joakimandersson.se/projects/colortail/

Grizly
fuente
Sí, multitail es mejor
Grizly
3

Utilizo un pequeño script con combinaciones grep para obtener algunos colores:

#!/bin/bash
shopt -s expand_aliases

alias grey-grep="GREP_COLOR='1;30' grep -E --color=always --line-buffered"
alias red-grep="GREP_COLOR='1;31' grep -E --color=always --line-buffered"
alias green-grep="GREP_COLOR='1;32' grep -E --color=always --line-buffered"
alias yellow-grep="GREP_COLOR='1;33' grep -E --color=always --line-buffered"
alias cyan-grep="GREP_COLOR='1;36' grep -E --color=always --line-buffered"

tail -1000f /var/log/apache2/error.log | grey-grep ".*PerformanceLogger.*|$" | cyan-grep "INFO|$" | yellow-grep "WARN|$" | red-grep "[ERROR].*|[FATAL].*|$" | green-grep "***|$"

El punto es que cada grep encadenado agrega un color diferente. Entonces el resultado es algo como: Registro de Apache con algunos colores

DavidEG
fuente
0

Plug descarado: escribí una herramienta llamada TxtStyle que hace algo similar a las opciones mencionadas anteriormente. Puede ejecutarlo de la siguiente manera:

tail -f /var/log/syslog | txts --regex '\d+'

También puede definir estilos con nombre en el archivo de configuración ( ~/.txts.conf) y usarlo así:

ifconfig | txts --name ifconfig

(el ifconfigestilo se define fuera de la caja)

Armandino
fuente
0

Hay una característica que no he visto en esos coloreadores: resaltar los tiempos de respuesta (mayor tiempo -> color más alarmante). El soporte de 256 colores en emuladores de terminales modernos podría ser útil aquí.

sendmoreinfo
fuente
0

Otro truco grep útil para mostrar toda la salida pero colorear la PALABRA CLAVE seleccionada es:

tail -f FILE | grep --color=always -E "$|REGEXP"
Felipe Alvarez
fuente