若Node.js应用将日志输出到指定文件(如通过fs模块、winston等库配置),可使用以下命令查看:
cat /path/to/app.log(替换为实际日志文件路径);tail -f /path/to/app.log(按Ctrl+C退出实时模式);grep "error" /path/to/app.log(仅显示包含“error”的行,支持正则表达式)。logs文件夹(如./logs/app.log)或自定义路径(如/var/log/nodejs/app.log)。若应用以systemd服务运行(需提前创建服务文件),可使用journalctl命令查看系统日志:
journalctl -u your-nodejs-service-name(替换为实际服务名称,如my-nodejs-app);journalctl -u your-nodejs-service-name -f;journalctl -u your-nodejs-service-name | grep "keyword"。systemctl status your-nodejs-service-name命令确认。若应用由pm2进程管理器管理(常见于生产环境),可使用pm2 logs命令查看:
pm2 logs;pm2 logs your-app-name(替换为实际应用名称,可通过pm2 list确认);pm2 logs your-app-name --lines 100(显示最近100行并实时跟踪)。/root/.pm2/logs目录下,文件名为<app-name>-out.log(标准输出)和<app-name>-err.log(错误输出)。若应用使用日志库(如winston、bunyan),日志通常输出到配置的文件中:
transports将日志写入文件,如:const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
transports: [
new winston.transports.File({ filename: '/var/log/nodejs/app.log' }) // 指定日志路径
]
});
logger.info('This is an info log.'); // 日志将写入/var/log/nodejs/app.log
查看命令:tail -f /var/log/nodejs/app.log。less /path/to/app.log(按空格翻页,q退出);head -n 20 /path/to/app.log(显示前20行);grep -c "error" /path/to/app.log(统计包含“error”的行数)。以上方法覆盖了Ubuntu环境下Node.js日志的常见查看场景,可根据应用的运行方式(直接运行、systemd服务、pm2管理)和日志配置选择合适的方式。