En un momento tuve que trabajar mucho con troncos. Pueden ser grandes y estar en diferentes servidores. Se requerĂa no encontrar algo especĂfico, sino comprender por quĂ© el sistema no se comporta como deberĂa. Por alguna razĂłn, no habĂa un agregador de registros.
QuerĂa tener un visor de registros que permitiera, en cualquier momento, abrir cualquier archivo sin descargarlo en la máquina local, como el comando less en la consola de Linux. Pero al mismo tiempo, debe haber un conveniente resaltado de texto, como en el IDE, y filtrado de registros por varios parámetros. El filtrado y la bĂşsqueda deberĂan funcionar por eventos en el registro, y no por lĂneas, como grep, esto es importante cuando hay entradas de varias lĂneas, por ejemplo, errores con seguimientos de pila. TambiĂ©n deberĂa ser posible ver registros de varios archivos a la vez en una página, congelándolos de acuerdo con la marca de tiempo, incluso si los archivos se encuentran en diferentes nodos.
¡Y descubrà cómo hacer tal utilidad!
Log Viewer - web-, , , Web . , , , , . .
« ? c ». , , 1 3,5, . , , , , , . .
, ; severity , .
, , «+» «…» , , , . . . Java IDE.
: «~.SecurityManager». , «~».
, . , . , Ctrl+C, , .
, , , :
. , , . . , severity, UI :
Severity filter
. , « ». , . , .
« » « », . .
JavaScript. true false.
JavaScript
function isVisibleEvent(text, fields) {
var match = text.match(/Task completed, elapsed time: (\d+)ms$/)
if (!match)
return false // Don't show events not matched the pattern
var time = parseInt(match[1])
return time > 500 // Show only events where elapsed time is more than a threshold
}
, . , , . , , , .
URL, .
,
- — , , , , , , ..
, .
, . , . . , . . log4j, logback . , — issue GitHub, .
— . «.log» , . :
logs = [
{
path: "/opt/my-app/logs/*.log"
},
{
path: ${HOME}"/work/**"
}
]
.log /opt/my-app/logs ~/work .
, — , . , . , Log Viewer. web UI , , Log Viewer LogViewer . - .
. , , « N », N — . , N . , « N T», T — . . , . , / T, , . , . .
, UI , URL :
http://localhost:8111/log?path=/opt/my-app/logs/a.log@hostname1&path=/opt/my-app/logs/b.log@hostname1&path=/opt/my-app/logs/c.log@hostname2
"path" , "@" , . . "@" — . URL, , log-paths = { … }
.
Log Viewer Java Web , . . Maven/Gradle spring context. , log viewer . UI /logs, . Log4j Logback.
, — discussions GitHub.
, . , . , , .
UI. , JSON, , . severity , .
A veces no hay forma de abrir un puerto en el servidor para ver los registros, solo hay acceso SSH. Puede hacer soporte para el trabajo a travĂ©s de SSH. La interfaz de usuario web se elevará en la máquina local, se conectará a travĂ©s de SSH al servidor y lanzará un agente especial allĂ. El agente aceptará comandos a travĂ©s del flujo de entrada y devolverá las partes requeridas del registro a travĂ©s del flujo de salida.
Me encantarĂa escuchar tus comentarios.
Proyecto en GitHub: https://github.com/sevdokimov/log-viewer