ecFlow笔记:ecFlow日志解析 - 服务端记录
目录
本文属于介绍 NWPC 工作流日志工具的系列文章。
之前的文章《ecFlow笔记:ecFlow日志解析 - 通用字段》介绍如何解析 ecFlow 日志的通用字段。
本文介绍如何解析服务端记录(ServerLogRecord
)类型的 ecFlow 日志条目。
本文代码均来自 nwpc-oper/nwpc-workflow-log-model 项目。
介绍
目前 NWPC 使用的 ecflow 服务日志中,服务端记录仅有一种类型:
MSG:[20:29:54 28.5.2020] svr:check_pt in 0 seconds
表示服务端执行 checkpoint 操作。
目前 NWPC 工作流日志工具尚未使用服务端记录,所以仅做简单的解析。
结构
服务端记录(ServerLogRecord
)的结构继承自通用日志结构(EcflowLogRecord
),将 Event 字段设置为状态变化 EventType.Server
。
同时增加命令(Command)字段,记录执行的命令。
解析
在经过通用解析后,从 command 字段中提取服务端命令设置为命令字段(Command)。
实现
请参考 nwpc-workflow-log-model 项目的 ServerLogRecord
类的 parse_record 函数
以下代码来自该函数,其中 self
表示 EcflowLogParser
类,line
是解析过通用字段后剩余的日志条目字符串。即
check_pt in 0 seconds
查找 " "
,获取命令
start_pos = 0
end_pos = line.find(" ", start_pos)
event = line[start_pos:end_pos]
self.event = event
self.command = self.event
参考
项目: