zoukankan      html  css  js  c++  java
  • nodejs简单http日志存储

    nodejs实现简单http日志存储

     1 /*
     2 日志存储:
     3 202.189.63.115 - - [31/Aug/2008:15:42:31 +0800] "GET / HTTP/1.1" 200 1365 "-"
     4   "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1"
     5 */
     6 
     7 let http = require("http"),
     8     fs = require("fs"),
     9     file = "access.log",
    10     retValue = Buffer.from("你好阿"),
    11     date = new Date(),
    12     day = date.getDate(),
    13     month = date.getMonth(),
    14     year = date.getFullYear(),
    15     hours = date.getHours(),
    16     seconds = date.getMinutes(),
    17     milis = date.getSeconds(),
    18     zone = "+8400";
    19 
    20 let server  = http.createServer(function(req,res){
    21 }).listen(8080)
    22 
    23 server.on("request",function(req,res){
    24     function getLog(req,status,size){
    25       let rizhi = "",
    26           ip,
    27           time,
    28           method,
    29           page,
    30           protocol,
    31           statusCode,
    32           userAgent;
    33       ip = req.connection.remoteAddress;
    34       time = `[${day}/${month}/${year}:${hours}:${seconds}:${milis} ${zone}]`;
    35       method = req.method;
    36       page = req.url;
    37       protocol = req.httpVersion;
    38       statusCode = status;
    39       size = size;
    40       userAgent = req.headers["user-agent"];
    41       rizhi = `${ip} - - ${time} "${method} ${page} HTTP${protocol}" ${statusCode} ${size}
    42         "-" "${userAgent}"`;
    43           console.log(rizhi)
    44         return rizhi;
    45     }
    46     function writeLog(f,req,res,status,size,fn){
    47         let rizhi = fn(req,status,size);
    48         fs.writeFileSync(file,rizhi)
    49     }
    50     if(req.method.toLowerCase() === 'get'){
    51       if(req.url === '/app'){
    52           let status = 200;
    53           let size = 20000;
    54           writeLog(file,req,res,status,size,getLog)
    55       }
    56     }
    57 })
    View Code

    效果:

    1 ::1 - - [9/5/2019:13:54:6 -480] "GET /app HTTP1.1" 200 20000
    2         "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"
    View Code
  • 相关阅读:
    React 父调子 子调父 observer.js 非父子传值
    echarts 折线图
    跳转新页面解决用户重新登录的方法
    微信小程序规范 引入框架 引入外部js css
    js 400
    Angular2 表单校验
    Angular2 登录页进门户页 用户接口正常 从服务平台退出到门户页 登录接口报302
    CSP-S 2020 SC 迷惑行为大赏
    【题解】[CSP-S 2020] 函数调用【拓扑图DP】
    【题解】[CSP-S 2020] 动物园
  • 原文地址:https://www.cnblogs.com/lanxiansen/p/10993333.html
Copyright © 2011-2022 走看看