想问下nodejs有没有好的分析日志的方法
发布于 8 年前 作者 sayfly 5822 次浏览 最后一次编辑是 6 年前 来自 问答

//统计消息 function getMessageCount(i, messageLogList, msgSendCount, msgSendSuccessfullyCount, callback) { if (i == messageLogList.length) { callback({msgSendCount: msgSendCount, msgSendSuccessfullyCount: msgSendSuccessfullyCount}); } else { var log = messageLogList[i]; if (log.indexOf(‘status=readyToSend’) != -1) { msgSendCount += 1; } if (log.indexOf(‘status=sendPersonalMsgSuccessfully’) != -1 || log.indexOf(‘status=sendGroupMsgSuccessfully’) != -1) { msgSendSuccessfullyCount += 1; } i++; getMessageCount(i, messageLogList, msgSendCount, msgSendSuccessfullyCount, callback); } } 这是我写的一个从日志里面统计的递归方法 当数据过多后提示我RangeError: Maximum call stack size exceeded /opt/project/miyu/miyuProject_test/metalk_api/lib/SendDailyStatistics.js:156 if (log.indexOf(‘status=readyToSend’) != -1) { ^ 想问问有什么好的分析日志的方法吗? 求大神指点一下

9 回复

你用递归了,v8有stack限制。你可以改成迭代方式

日志分析与 nodejs 无关吧…日志不都是文本文件吗

你可以尝试一下使用云服务来分析和管理日志,我们是个创业公司(uclogs.com),正在做类似的事情,正在招募体验用户: https://cnodejs.org/topic/5445bed79657d9ab12567e6d

@ryanking8215 感谢 我去试试

@alsotang 额 我是想每天定时统计消息 用nodejs写代码操作

日志分析…最近也一直在想这个问题,我想还是把它导入到数据库然后用数据库自带的方法分析吧,直接分析文本太痛苦了。

创建缓存文件,没隔一段时间更新缓存文件,查询时直接从缓存读取,这样子速度快点吧

@StevenStar 我这是一天一查。 查当天的数据 日志每天都有分割的

@sayfly 写python的时候我写过类似的功能,当时是这么做的,有一个进程单独用来update缓存

回到顶部