今天运营说有一个需要生成邮件的地方,没有生成邮件。因此需要查一下原因,并解决。

在查看代码的过程中,发现找不到可以查看运行日志的地方。

  • 没有打印。
  • 没有专门的文件记录。
  • 发现代码只是运行了逻辑,操作了数据库,而功能是嵌入到系统中的,系统运行日志浩如烟海,杂乱无章,是不能找到相关的记录的,而且系统log是信息流,也没有进行存储,因此也是找不到的。
  • 比较尴尬的是,这个功能是我写的,而我之前并没有意识到这个问题。虽然有一些专门记录日志的地方,存在了mongo中,但是是使用中间件,主要记录了操作数据库的数据记录,以及其他一小部分操作日志。但是一直没有意识到也需要记录这样的功能操作日志。
  • 终于意识到日志的作用。

系统出现了问题,找不到运行日志,这该如何是好?

  • 之前一直看到别人的代码中,有的地方使用了pythonlog模块,进行日志处理。但是自己没有切实用过。一直是print
  • 前阵子看过elasticsearch,知道这个它可以做海量数据的查询,还有Kibana,方便进行日志分析。但是当时主要想的是对现有的操作日志进行记录,数据修改进行记录等等,没有想到这里。
  • 一个理想中的BI系统应该有哪些模块? 这是前两天研究数据可视化,看到的一篇文章。里面介绍了微信如何收集用户使用朋友圈的数据记录

这里拿微信举例,从安装,启动,登录/注册的前期行为到聊天,公众号阅读,朋友圈查看等后期行为,不同流程的事件线会共用一些数据埋点。
一个用户从唤醒app开始,记录一系列的操作节点,带上序号和时间戳,就可以完善的记录用户行为日志,不过这类技术的问题就不深入探究,看研发团队怎么选择技术方案了。下面臆造一条行为组的日志信息。为什么要做系统运行日志
先抛开数据加密的问题,这串日志的意思是下午13:40:03,ID为498161的用户,通过点击ID为164618的推送主动将app被唤醒,此时生成该条行为组信息的ID为341325,唤醒后按照推送给到的参数打开app进入微信tab页面,也就是首页,接下来停留了约4秒后,进行了拖拽操作,手指拖拽区间从x:334,y:130到x:560,y:363的位置,然后暂停了大概2s以后,点击了坐标x:634,y:30的位置,这个位置的目标是一栏ID为76316的对话信息,停留了约2秒后,点击页面中的输入框,过了约10秒钟,输入框失去焦点,此时输入框的内容为‘\u8001\u54e5\u53ef\u4ee5\u7684’(这里是Unicode,假装加密了:),与此同时按下了发送按钮。到了这里,这一系列的流程就已经完成了,收到好友信息的推送提醒了用户,用户做出了回应,并进行一系列的操作,完成了回复。

上面的腾讯微信的操作日志记录,就很好,既能方便查,也能方便分析。


由此想到,我们现在的系统,以及将来其他的系统,也需要有这样一套东西。
  • 可以规范化,每个人写代码和功能的时候,都会记录日志。养成习惯,也是规范和规定。
  • 方便查
  • 方便分析
然后就是设计的问题了
  • 需要考虑什么时候记录
  • 记录什么信息
  • 如何才能方便查找
  • 如何能够方便分析
  • 因地制宜,多学习,多思考,多参考,多交流

以上

为什么研究数据可视化,以及研究到的东西

相关文章: