【发布时间】:2020-05-21 13:21:17
【问题描述】:
我正在尝试每 24 小时在 javascript 中解析一个服务器日志文件并将信息存储在数据库 (mongodb) 中。
数据的解析和存储让我很困惑
日志文件格式如下
[2020.02.05-10.44.02:841][244]2020.02.04_10.44.02: USERNAME joined this SERVER!
[2020.02.05-11.45.58:147][188]2020.02.04_11.45.58: GROUPNAME slayed a monster!
[2020.02.05-11.46.39:852][437]2020.02.04_11.46.39: USERNAME left this SERVER!
[2020.02.05-11.46.39:854][437]2020.02.04_11.46.39: GROUPNAME was slayed by GROUPNAME
[2020.02.05-11.46.57:317][956]2020.02.04_11.59.59: USERNAME joined this server!
我想获取每个用户在服务器上花费的时间、杀死的数量等。
我以前没有真正做过这样的事情,并且证明是相当具有挑战性的,我认为这是日志文件可以以在线用户结尾的事实,所以我需要在下一次解析日志时对此进行补偿。
我可以将日志分成每行的一个数组,映射它,然后检查该值是否包括“加入此服务器”,我可以通过这种方式获取数据,但我对如何存储它感到困惑,然后与下一个值包括“离开此服务器”..
也许正则表达式会是更好的解决方案?正如我所说的,我以前没有做过这样的事情,所以我不知道。
任何帮助或示例代码将不胜感激。
【问题讨论】:
-
每天有多少用户在线?日志只是一个巨大的连续文件,还是按天拆分?
-
我不能说每天有多少用户。日志每 24 小时拆分一次
-
除非你有一些魔法告诉你用户所在的组,否则你将很难获得每个用户的击杀数。
-
日志文件是否曾经出现过无法记录
USERNAME left this SERVER!导致连续USERNAME joined this SERVER!的问题? -
显然大声笑,它必须是每组的杀戮,不,它没有,当获取日志时它包含 24 小时的数据,24 小时后它会被新数据替换。跨度>
标签: javascript node.js regex mongodb parsing