操作方法

操作方法:将 GeoEvent 日志转换为 Excel 并使用 Python 按计数汇总唯一消息

Last Published: April 25, 2020

摘要

出于多种目的,在某些情况下,会将 GeoEvent 日志文件转换为 Excel 。 例如, 用于过滤 不同类型的错误,或者根据唯一错误消息创建计数汇总。

过程

以下步骤演示了如何将 GeoEvent 日志转换为 Excel 并使用 Python 脚本按计数来汇总唯一 消息。

:
该脚本将创建两个文件:analysted 和 message_count。
  1. 导入 所需的库。
import os
import pandas as pd
  1. 定义日志文件目录。
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. 针对该目录中的每个日志迭代转换至 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
  1. 创建汇总计数。
count = df['message'].value_counts()
count.to_excel(os.path.join(log_dir, 'message_count.xlsx'))
以下代码示例演示了完整的工作脚本:
import os
import pandas as pd

# 定义日志目录
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)]

# 转换为 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

# 按计数汇总
count = df['message'].value_counts()
count.to_excel(os.path.join(log_dir, 'message_count.xlsx'))
:
此代码可以用作独立脚本。 为此,请将完整脚本复制到文本编辑器(例如 Notepad++)中,然后将文件另存为 .py 文件。 要运行代码,请右键单击 .py 文件,然后选择“使用 IDLE 编辑”> 选择“运行”> 运行模块。

文章 ID:000018954

从 ArcGIS 专家处获得帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项

相关信息

发现关于本主题的更多内容