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

Obtener ayuda de expertos en ArcGIS

Contactar con soporte técnico

Descargar la aplicación de soporte de Esri

Ir a las opciones de descarga

Información relacionada

Descubrir más sobre este tema