继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

暮雩
关注TA
已关注
手记 65
粉丝 10
获赞 5

课程名称: 新版 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 做日志分析

图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP