尝试使用Apache记录访问日志
※macOS
Apache是什么?
能够提供HTML、图像、视频等静态内容的Web服务器软件
这次要使用的文件。
Apache_Test
├── app.js
├── node_modules
│ └── たくさんあるから書かない
├── package.json
└── httpd.conf
安装
$ npm init -y
$ npm i express fs morgan
实际亲自去尝试一下
处理内容
const app = require('express')()
const morgan = require('morgan')
const fs = require('fs')
const port = process.env.PORT || 8080
let accessLogStream = fs.createWriteStream(__dirname + '/access.log', {flags: 'a'})
app.use(morgan('combined', {stream: accessLogStream}))
app.get('/', function (req, res) {
res.send("Hello Node.js!")
})
app.listen(port, ()=> console.log("Port number is "+ port))
带领去
$ node app.js
Port number is 8080.
访问本地服务器
只要在app.js中指定的短句显示出来,访问就算是成功的。
获取访问日志
测量对此次设置的端口号的访问情况。
httpd.conf的配置
NameVirtualHost *:8080
Listen 8080
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"
在此配置文件中,可以指定日志的输出格式。
这次是 %h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”。
%h リモートホスト名
%l クライアントの識別子
%u 認証ユーザー名
%t リクエストを受信した時刻
%r リクエストの最初の行
%>s 最後のレスポンスのステータス
%b HTTPヘッダを除くレスポンスのバイト数
%{Referer}i サーバが受信したリクエストヘッダのReferer
%{User-Agent}i サーバが受信したリクエストヘッダのUser-Agent
假设。
让它再跑一次
$ node app.js
Port number is 8080.
再次访问本地服务器。
确认一下文件结构,应该会有一个名为 access.log 的文件被生成!
查看access.log
按照 httpd.conf 文件中指定的方式生成了访问日志。
结束
这次使用的代码在这里。