CÓMO

Convertir registros de GeoEvent a Excel y resumir mensajes únicos por recuento con Python

Last Published: April 25, 2020

Resumen

En algunos casos, los archivos de registro de GeoEvent se convierten a Excel para varios fines. Por ejemplo, para filtrar distintos tipos de errores o para crear un resumen de recuento basado en mensajes de error únicos.

Procedimiento

Los siguientes pasos muestran cómo convertir registros de GeoEvent a Excel y resumir un mensaje único por recuento mediante un script de Python.

Nota:
El script crea dos archivos: analyzed y message_count.
  1. Importe las bibliotecas requeridas.
import os
import pandas as pd
  1. Definir el directorio del archivo de registro.
log_dir = r'C:\Program Files\ArcGIS\Server\GeoEvent\data\log'
log_path = [os.path.join(log_dir, log_file) for log_file in os.listdir(log_dir)]
  1. Iterar el proceso de conversión a Excel por cada registro del directorio.
i=1
for path in log_path:
    if path.endswith('karaf.log'):
        df = pd.read_table(path, 
                           sep='|',  
                           header=None, 
                           names=['level', 'unknown1', 'unknown2','logger', 'message'], 
                           parse_dates=True, error_bad_lines = False, warn_bad_lines = True)
        df.to_excel(os.path.join(log_dir, 'analyzed{}.xlsx'.format
  1. Crear el recuento resumido.
count = df['message'].value_counts()
count.to_excel(os.path.join(log_dir, 'message_count.xlsx'))
La siguiente muestra de código presenta un script completo:
import os
import pandas as pd

# Definir el directorio de registro
log_dir = r'C:\Program Files\ArcGIS\Server\GeoEvent\data\log'
#for log_file in os.listdir(log_dir):
    #log_path = os.path.join(log_dir, log_file)
    #print(log_path)
log_path = [os.path.join(log_dir, log_file) for log_file in os.listdir(log_dir)]

# Convertir a Excel
i=1
for path in log_path:
    if path.endswith('karaf.log'):
        df = pd.read_table(path, 
                           sep='|',  
                           header=None, 
                           names=['level', 'unknown1', 'unknown2','logger', 'message'], 
                           parse_dates=True, error_bad_lines = False, warn_bad_lines = True)
        df.to_excel(os.path.join(log_dir, 'analyzed{}.xlsx'.format(i)))
        i+=1

# Resumir por recuento
count = df['message'].value_counts()
count.to_excel(os.path.join(log_dir, 'message_count.xlsx'))
Nota:
Este código se puede utilizar como script independiente. Para ello, copie el script completo en un editor de texto, por ejemplo, Notepad++, y guarde el archivo como archivo .py. Para ejecutar el código, haga clic con el botón derecho en el archivo .py y seleccione Edit with IDLE (Editar con IDLE) > seleccione Run (Ejecutar) > Run Module (Ejecutar módulo).

Id. de artículo: 000018954

Recibir notificaciones y encontrar soluciones a problemas nuevos o comunes

Obtenga respuestas resumidas y soluciones de vídeo de nuestro nuevo chatbot de IA.

Descargar la aplicación de soporte de Esri

Información relacionada

Descubrir más sobre este tema

Obtener ayuda de expertos en ArcGIS

Contactar con el soporte técnico

Descargar la aplicación de soporte de Esri

Ir a opciones de descarga