操作方法
出于多种目的,在某些情况下,会将 GeoEvent 日志文件转换为 Excel 。 例如, 用于过滤 不同类型的错误,或者根据唯一错误消息创建计数汇总。
以下步骤演示了如何将 GeoEvent 日志转换为 Excel 并使用 Python 脚本按计数来汇总唯一 消息。
注: 该脚本将创建两个文件:analysted 和 message_count。
import os import pandas as pd
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)]
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
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 专家的帮助
立即开始聊天