Node.js日志的查看方式和存储位置取决于日志输出配置(如直接输出到控制台、写入文件、发送到系统日志)和使用的进程管理工具(如PM2、systemd)。以下是常见场景的具体说明:
默认输出位置
console.log()
或console.error()
输出,日志会直接显示在终端;若应用以守护进程(如&
后台运行)启动,这些输出可能被系统日志捕获(如Ubuntu/Debian的/var/log/syslog
、CentOS的/var/log/messages
)。自定义文件路径
fs
模块手动写入:const fs = require('fs');
const logFilePath = './logs/app.log';
fs.appendFileSync(logFilePath, 'This is a log entry.\n');
const winston = require('winston');
const logger = winston.createLogger({
transports: [new winston.transports.File({ filename: '/var/log/myapp.log' })]
});
logs
文件夹(如./logs/app.log
)、系统目录(如/var/log/myapp.log
)。系统日志(Systemd/Journald)
systemd
以服务形式运行(如node app.js --name my-nodejs-app
),日志会存储在系统日志中,可通过journalctl
查看。直接查看日志文件
cat logs/app.log
:打印文件全部内容(适合小文件)。less logs/app.log
:分页查看(按q
退出)。tail -f logs/app.log
:实时查看最新日志(常用于监控)。grep "error" logs/app.log
:搜索特定关键词(如错误信息)。使用journalctl查看系统日志
systemd
运行,可通过服务名称查看日志:journalctl -u your-nodejs-service-name -t # -t显示日志标签(如应用名称)
my-nodejs-app
,命令为journalctl -u my-nodejs-app -t
。使用PM2查看进程日志
pm2 start app.js
),可通过以下命令查看日志:
pm2 logs
:显示所有应用的实时日志。pm2 logs your-app-name
:查看特定应用的日志。pm2 logs --json
:以JSON格式输出(适合自动化分析)。第三方日志管理工具
/var/log/syslog
)或自定义日志文件时,可能需要sudo
权限(如sudo tail -f /var/log/myapp.log
)。LOG_PATH
)指定日志路径,可通过echo $LOG_PATH
(Linux/macOS)或echo %LOG_PATH%
(Windows)查看当前配置。