Javascript

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

本文主要是介绍【备战春招】第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 做日志分析

图片描述

这篇关于【备战春招】第6天 新版 Node.js+Express+Koa2 开发Web Server博客 8-8~8-9的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!