若Node.js应用启动时将日志重定向到文件(如node app.js > logs/app.log 2>&1 &),可通过以下命令查看:
cat logs/app.log(适合小文件,一次性输出全部内容);less logs/app.log(支持上下翻页,按q退出);tail -f logs/app.log(动态显示新增内容,按Ctrl+C停止);grep 'error' logs/app.log(筛选包含“error”的日志行,可用于快速定位问题)。若Node.js作为systemd服务运行(如通过node app.js --name my-nodejs-app启动),可通过journalctl命令查看关联日志:
journalctl -u your-nodejs-service-name -t # 替换为实际服务名(如my-nodejs-app)
-u:指定服务名称;-t:显示日志标签(可选,用于过滤特定类型的日志)。若通过PM2(Node.js进程管理工具)启动应用,可使用PM2内置命令查看日志:
pm2 logs;pm2 logs your-app-name(替换为实际应用名);pm2 logs --lines 100(显示最近100行并实时更新)。~/.pm2/logs/目录(如your-app-name-out.log为标准输出,your-app-name-error.log为错误输出)。若应用使用日志库(如winston、morgan)配置了日志路径,需检查代码中的日志配置:
const winston = require('winston');
const logger = winston.createLogger({
transports: [
new winston.transports.File({ filename: '/var/log/myapp/app.log', level: 'info' }) // 日志保存路径
]
});
此时可直接查看/var/log/myapp/app.log文件。若应用正在运行,可通过lsof命令查找其打开的日志文件:
# 1. 获取Node.js进程PID
ps aux | grep node
# 2. 查找该进程打开的文件
sudo lsof -p [PID] | grep '\.log'
输出中会显示应用打开的日志文件路径(如/path/to/app.log)。
以上方法覆盖了CentOS下查看Node.js日志的主要场景,可根据应用部署方式(直接运行、systemd服务、PM2管理)和日志配置选择合适的方式。