温馨提示×

怎么查看Nodejs访问日志

小樊
37
2026-08-17 17:44:11
栏目: 编程语言

查看 Node.js 的访问日志,要先明确你说的“访问日志”是哪一种。常见有 3 类,下面按最常见场景给你说明。


一、Node.js 自身没有“自带访问日志”

Node.js 默认不会记录访问日志,是否记录取决于你用了什么框架或中间件。


二、最常见:Express 访问日志(推荐)

1️⃣ 使用 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"

2️⃣ 常见日志格式

格式 说明
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 的访问日志

使用 koa-logger

npm install koa-logger
const Koa = require('koa');
const logger = require('koa-logger');

const app = new Koa();
app.use(logger());

五、通过反向代理(Nginx)查看访问日志(生产环境常见)

如果你用 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 应用日志


如果你愿意,可以告诉我:

  • 用的是 Express / Koa / NestJS / 原生 http
  • 本地开发还是服务器
  • 想看 IP / 接口 / 状态码 / 耗时

我可以给你一份完全贴合你项目的日志配置方案

0