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)查看当前配置。