为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第6天 新版 Node.js+Express+Koa2 开发Web Server博客 8-8~8-9

标签:
征文 活动

课程名称: 新版 Node.js+Express+Koa2 开发Web Server博客

课程章节: 8-8 分析日志介绍 ~ 8-9 readline 演示

课程讲师: 双越

课程内容:

日志分析

  • 如针对 access.log 日志,分析 chrome 的占比(简单的分析)
  • 日志是按行存储的,一行就是一条 日志
  • 使用 nodejs 的readline(基于stream,效率高)

utils/readline.js

const fs = require("fs");
const path = require("path");
const readline = require("readline");

// 文件名
const fileName = path.resolve(__dirname, "../", "../", "logs", "access.log");

//  创建 read stream
const readStream = fs.createReadStream(fileName);

// 创建 readline 对象
const rl = readline.createInterface({
  input: readStream,
});

let chromeNum = 0;
let sum = 0;

// 逐行读取
//line  读完一行就触发
rl.on("line", (lineData) => {
  if (!lineData) {
    return;
  }
  // 记录总行数
  sum++;

  const arr = lineData.split(" -- ");
  if (arr[2] && arr[2].indexOf("Chrome") > 0) {
    // 累加 chrome 的数量
    chromeNum++;
  }
});

// 监听读取完成
rl.on("close", () => {
  console.log("chrome 占比:" + chromeNum / sum);
});

课程收获:

  1. 明白如使用 nodejs 做日志分析

图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
10
获赞与收藏
5

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消