如何在CyberPanel中保存和查看运行的Node.js项目的各类日志?
日志获取配置方案
1. CyberPanel & OpenLiteSpeed 侧配置
- 查看默认日志路径:CyberPanel 部署的 Node 站点默认日志存放在
/home/<你的站点域名>/logs/目录下,标准输出日志为stdout.log,错误输出日志为stderr.log。若路径下无对应文件,先进入对应站点的 CyberPanel 管理页,找到「Web服务器配置」-「日志设置」,勾选 开启错误日志、开启访问日志,日志级别调整为DEBUG方便排查细粒度问题。 - OpenLiteSpeed 运行配置调整:进入 7080 端口的 OLS 管理后台,找到对应 Node 站点的上下文配置,在「环境变量」栏添加
NODE_ENV=development,同时删除启动参数里的静默运行相关字段,确保 Node 进程的控制台输出可以被重定向到日志文件。 - 生效配置:修改完成后先在 OLS 界面重启对应 Node 站点上下文,再执行
systemctl restart lscpd重启 CyberPanel 核心服务即可。
2. Node.js 项目侧日志配置
- 自定义日志重定向:在项目根目录新增启动脚本
start.sh,写入以下内容:
#!/bin/bash exec node 你的入口文件.js >> ./runtime.log 2>> ./error.log
执行 chmod +x start.sh 给脚本添加执行权限后,在 OLS 的 Node 上下文启动配置中,把原启动命令替换为 ./start.sh,后续所有控制台输出和错误都会分别写入项目根目录的 runtime.log 和 error.log。
- 开启 Mongoose 调试日志:在项目引入 Mongoose 的代码段前添加
mongoose.set('debug', true),所有数据库请求、参数、返回错误都会直接打印到控制台同步写入日志。 - 全局异常捕获:在项目入口文件最顶部添加以下代码,避免进程直接崩溃无错误输出:
process.on('uncaughtException', (err) => { console.error('未捕获异常:', err.stack); }); process.on('unhandledRejection', (reason, promise) => { console.error('未处理Promise拒绝:', reason); });
内容的提问来源于stack exchange,提问作者Indraprastha Design
相关产品推荐
相关产品推荐

