想问下nodejs有没有好的分析日志的方法
 发布于 11 年前  作者 sayfly  7555 次预览  最后一次回复是 11 年前  来自 问答 

//统计消息 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 回复
ryanking8215

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

alsotang

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

mingqi

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

sayfly

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

pockry

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

StevenStar

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

sayfly

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

StevenStar

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