查看 Node.js 的访问日志,要先明确你说的“访问日志”是哪一种。常见有 3 类,下面按最常见场景给你说明。
Node.js 默认不会记录访问日志,是否记录取决于你用了什么框架或中间件。
morgan(最常用)npm install morgan
const express = require('express');
const morgan = require('morgan');
const app = express();
app.use(morgan('combined'));
// 或
// app.use(morgan('dev'));
app.get('/', (req, res) => {
res.send('hello');
});
app.listen(3000);
::1 - - [10/Oct/2024:10:00:00 +0000] "GET / HTTP/1.1" 200 5 "-" "curl/7.88"
| 格式 | 说明 |
|---|---|
dev |
开发环境,简洁 |
combined |
类似 nginx/apache |
common |
基本访问信息 |
short |
简短 |
tiny |
极简 |
node app.js
const fs = require('fs');
const path = require('path');
const morgan = require('morgan');
const accessLogStream = fs.createWriteStream(
path.join(__dirname, 'access.log'),
{ flags: 'a' }
);
app.use(morgan('combined', { stream: accessLogStream }));
查看:
cat access.log
tail -f access.log
koa-loggernpm install koa-logger
const Koa = require('koa');
const logger = require('koa-logger');
const app = new Koa();
app.use(logger());
如果你用 Nginx → Node.js:
# 访问日志
cat /var/log/nginx/access.log
# 实时查看
tail -f /var/log/nginx/access.log
app.use((req, res, next) => {
console.log(`${req.method} ${req.url} - ${req.ip}`);
next();
});
| 工具 | 说明 |
|---|---|
winston |
专业日志库 |
pino |
高性能 |
log4js |
类似 Java log4j |
例如:
npm install winston
✅ Express?
→ 用 morgan ✅
✅ 想看实时访问?
tail -f access.log
✅ 生产环境?
→ Nginx 日志 + Node 应用日志
如果你愿意,可以告诉我:
我可以给你一份完全贴合你项目的日志配置方案。