首页 > Web开发 > 详细

nodejs简单http日志存储

时间:2019-06-09 15:25:58      阅读:252      评论:0      收藏:0      [点我收藏+]

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

 

nodejs简单http日志存储

原文:https://www.cnblogs.com/lanxiansen/p/10993333.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!