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

额6725609 2023/2/14 3:13:20

课程名称: 新版 Node.js+Express+Koa2 开发Web Server博客 课程章节: 8-8 分析日志介绍 ~ 8-9 readline 演示 课程讲师: 双越 课程内容: 日志分析 如针对 access.log 日志,分析 chrome 的占比(简单的分析) 日志是按行存储的,一行就是一条 日志 使用 nodejs 的r…

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

图片描述

随时随地学软件编程-关注百度小程序和微信小程序
关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[【备战春招】第6天 新版 Node.js+Express+Koa2 开发Web Server博客 8-8~8-9]http://www.zyiz.net/tech/detail-396217.html

赞(0)
关注微信小程序
程序员编程王-随时随地学编程

扫描二维码或查找【程序员编程王】

可以随时随地学编程啦!

技术文章导航 更多>