问题
· 八月 24, 2022

log文件内容存储到DB中

现在有一个需求。想将intersystems系统产生的alerts.log文件的内容保存到一个表中。有什么工具或者API 能自动格式化log文件到DB吗,还是需要手动解析log文件然后在存储到DB中。

讨论 (1)2
登录或注册以继续

这是两件事:1. 把log里的记录结构化。 2. 保存到DB。

关于1,如果你用的是最新的iris版本, 可以直接拿到结构化的log, 看这个链接: https://docs.intersystems.com/iris20221/csp/docbook/Doc.View.cls?KEY=ALOG

如果是老版本没有结构化,您得自己去做文本处理。好在这个log非常简单。比如下面两行:

08/30/22-11:03:57:775 (6964) 2 [Utility.Event] Previous system shutdown was abnormal, system forced down or crashed. Fast shutdown complete.
08/30/22-11:03:59:541 (7716) 2 [Utility.Event] Preserving journal files c:\intersystems\hcdemo\mgr\journal\20220824.002 and later for journal recovery and transaction rollback
如果您要只是把日期时间,警告类型,级别,内容分开,它基本就是分开的,用的是空格。

如果您想把内容页结构化,这就花功夫了, 我上面的链接里的工具也不做这个事。

2. 存入DB您得自己解决,IRIS提供文本,API, 没有SQL查询,好在有一大堆监控工具都干这事,就是监控文本文件写入数据库。