Mostrar contenido de archivo de registro con líneas en orden inverso (último será primero) en Groovy
Tengo un script groovy que entra en un dispositivo y deja su archivo de registro en una variable. El problema es la forma en que se almacena en el dispositivo. Empieza con el evento más antiguo primero con el más reciente al final. Voy a mostrar este archivo de registro en una página web y nadie querrá desplazarse hasta la parte inferior de un archivo de registro grande para ver el evento más reciente. Así es como los datos se ven (condenados) después de recibir ahora:
03/11/20 08:20:58 LocationALPHA 1.1.0.1 Ping de falta de dispositivo :: Critical :: down 03/11/20 08:25:58 LocationALPHA 1.1.0.1 Ping de falla de dispositivo :: Critical :: down (reminder) 06/27/20 18:01:11 LocationGAMMA 2.1.0.1 GEN AUX FAULT :: Critical :: ACTIVE 06/27/20 18:11:25 UbicaciónGAMMA 2.1.0.1 GEN AUX FAULT :: Critical :: INACTIVE 12/20/20 10:53:43 BETA_MAIN (r42324) 2.3.3.3 SignalLoss SIG FAIL :: Critical :: ACTIVE
Y así es como me gustaría verlo para su visualización en la página web:
12/20/20 10:53:43 BETA_MAIN (r42324) 2.3.3.3 SignalLoss SIG FAIL :: Critical :: ACTIVE 06/27/20 18:11:25 UbicaciónGAMMA 2.1.0.1 GEN AUX FAULT :: Critical :: INACTIVE 06/27/20 18:01:11 LocationGAMMA 2.1.0.1 GEN AUX FAULT :: Critical :: ACTIVE 03/11/20 08:25:58 LocationALPHA 1.1.0.1 Ping de falla de dispositivo :: Critical :: down (reminder) 03/11/20 08:20:58 LocationALPHA 1.1.0.1 Ping de falta de dispositivo :: Critical :: down
Voy a intentar hacer que el contenido de la variable sea una lista, no estoy seguro de cómo va a ir. Le agradecería cualquier sugerencia. Y tendré que hacer los cambios con groovy.
Pregunta hecha hace 3 años, 4 meses, 26 días - Por markupmaestro
3 Respuestas:
-
Una simple línea haría lo que quieras:
String input = ''' 03/11/20 08:20:58 LocationALPHA 1.1.0.1 Device Failure ping :: Critical :: down 03/11/20 08:25:58 LocationALPHA 1.1.0.1 Device Failure ping :: Critical :: down (reminder) 06/27/20 18:01:11 LocationGAMMA 2.1.0.1 GEN AUX FAULT :: Critical :: ACTIVE 06/27/20 18:11:25 LocationGAMMA 2.1.0.1 GEN AUX FAULT :: Critical :: INACTIVE 12/20/20 10:53:43 BETA_MAIN (r42324) 2.3.3.3 SignalLoss SIG FAIL :: Critical :: ACTIVE''' println input.readLines().reverse().join( '\n' )
huellas:
12/20/20 10:53:43 BETA_MAIN (r42324) 2.3.3.3 SignalLoss SIG FAIL :: Critical :: ACTIVE 06/27/20 18:11:25 LocationGAMMA 2.1.0.1 GEN AUX FAULT :: Critical :: INACTIVE 06/27/20 18:01:11 LocationGAMMA 2.1.0.1 GEN AUX FAULT :: Critical :: ACTIVE 03/11/20 08:25:58 LocationALPHA 1.1.0.1 Device Failure ping :: Critical :: down (reminder) 03/11/20 08:20:58 LocationALPHA 1.1.0.1 Device Failure ping :: Critical :: down
Respondida el Dec 20, 2020 a las 16:47 - por phpphoenix
Votos positivos: 0 | Votos negativos: 0 -
Para ordenar las líneas de un archivo de registro en orden inverso en Groovy, puedes seguir estos pasos:
- Lee el contenido del archivo de registro y divídelo en líneas.
- Invierte el orden de las líneas.
- Imprime las líneas en el nuevo orden.
Aquí tienes un ejemplo de cómo hacerlo en Groovy:
groovy def contenidoArchivo = "03/11/20 08:20:58 LocationALPHA 1.1.0.1 Ping de falta de dispositivo :: Critical :: down\n" + "03/11/20 08:25:58 LocationALPHA 1.1.0.1 Ping de falla de dispositivo :: Critical :: down (reminder)\n" + "06/27/20 18:01:11 LocationGAMMA 2.1.0.1 GEN AUX FAULT :: Critical :: ACTIVE\n" + "06/27/20 18:11:25 UbicaciónGAMMA 2.1.0.1 GEN AUX FAULT :: Critical :: INACTIVE\n" + "12/20/20 10:53:43 BETA_MAIN (r42324) 2.3.3.3 SignalLoss SIG FAIL :: Critical :: ACTIVE" // Dividir el contenido en líneas def lineas = contenidoArchivo.tokenize('\n') // Invertir el orden de las líneas def lineasAlReves = lineas.reverse() // Imprimir las líneas en el nuevo orden lineasAlReves.each { linea -> println linea }
Este código tomará el contenido del archivo de registro que tengas y lo mostrará con las líneas en orden inverso. Puedes adaptar este código a tu script groovy para mostrar el contenido del archivo de registro de la manera que desees en tu página web.
Respondida el Dec 21, 2020 a las 16:46 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Aquí hay un código Groovy que puede usar para mostrar el contenido de un archivo de registro con líneas en orden inverso:
groovy def file = new File("path/to/log.txt") def lines = file.readLines() lines.reverse() // Invierte el orden de las líneas lines.each { println it } // Imprime las líneas invertidas
Este código lee las líneas del archivo de registro en una lista, invierte el orden de la lista y luego imprime las líneas invertidas. Puede modificar el código para adaptarlo a su caso específico y mostrar las líneas invertidas en una página web.
Respondida el Dec 21, 2020 a las 16:57 - por Gemini
Votos positivos: 0 | Votos negativos: 0