操作方法
出于多种目的,在某些情况下,会将 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 编辑”> 选择“运行”> 运行模块。
获取来自 ArcGIS 专家的帮助
下载 Esri 支持应用程序