HOW TO

Konvertieren von GeoEvent-Protokollen in Excel und Zusammenfassen eindeutiger Meldungen nach Anzahl mithilfe von Python

Last Published: April 25, 2020

Zusammenfassung

In einigen Fällen werden die GeoEvent-Protokolldateien zu unterschiedlichen Zwecken in Excel konvertiert. Zum Beispiel, um verschiedene Fehlertypen zu filtern oder eine anzahlbasierte Zusammenfassung anhand eindeutiger Fehlermeldungen zu erstellen.

Vorgehensweise

Die folgenden Schritte zeigen, wie unter Verwendung eines Python-Skriptes GeoEvent-Protokolle in Excel konvertiert und eindeutige Meldungen nach Anzahl zusammengefasst werden.

Hinweis:
Das Skript erstellt zwei Dateien: "analyzed" und "message_count".
  1. Importieren Sie die erforderlichen Bibliotheken.
import os
import pandas as pd
  1. Definieren Sie das Verzeichnis für die Protokolldatei.
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. Wiederholen Sie die Konvertierung in Excel für jedes im Verzeichnis gespeicherte Protokoll.
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. Erstellen Sie die Zusammenfassung nach Anzahl.
count = df['message'].value_counts()
count.to_excel(os.path.join(log_dir, 'message_count.xlsx'))
Im folgenden Codebeispiel wird ein voll funktionsfähiges Skript veranschaulicht:
import os
import pandas as pd

# Define Log Directory
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)]

# Convert to 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

# Summarize by count
count = df['message'].value_counts()
count.to_excel(os.path.join(log_dir, 'message_count.xlsx'))
Hinweis:
Der Code kann als eigenständiges Skript verwendet werden. Dazu müssen Sie das vollständige Skript in einen Texteditor, zum Beispiel Notepad++, kopieren und die Datei mit der Erweiterung ".py" speichern. Um den Code auszuführen, klicken Sie mit der rechten Maustaste auf die PY-Datei und wählen "Edit with IDLE" > "Select Run" > "Run Module" aus.

Artikel-ID:000018954

Hilfe von ArcGIS-Expert*innen erhalten

Technischen Support kontaktieren

Die Esri Support-App herunterladen

Zu den Download-Optionen

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden