我已在两个不同的共享 Web 托管服务器上部署了 NodeJs 应用程序。第一个自动生成stderr.log 文件并有一个passenger 文件。但是,第二台服务器没有,因此我无法看到部署的错误。我在网上查看过,但找不到任何可以解决我的问题的内容。我也联系了服务器的客户服务,但他们的帮助不是很大。请让我知道如何创建stderr.log 或passenger.log 文件!非常感谢!
最佳答案
必须将以下内容添加到启动文件(例如 app.js
)中才能生成错误日志。不需要在其他服务器提供商上执行此操作,因为这是他们系统中的默认设置。
var fs = require('fs');
var util = require('util');
var log_file = fs.createWriteStream(__dirname + '/debug.log', {flags : 'w'});
var log_stdout = process.stdout;
var log_stderr = process.stderr;
console.log = function(d) { //
log_file.write(util.format(d) + '\n');
log_stdout.write(util.format(d) + '\n');
log_stderr.write(util.format(d) + '\n');
};
// var out = fs.openSync('./output.log', 'a')
// , err = fs.openSync('./error.log', 'a');
// require('child_process').spawn('./server', [], {
// detached : true,
// stdio : ['ignore', out, err]
// });
var access = fs.createWriteStream(__dirname + '/stdout.log', {flags : 'w'});
process.stdout.write = process.stderr.write = access.write.bind(access);
process.on('uncaughtException', function(err) {
console.error((err && err.stack) ? err.stack : err);
});
关于node.js - cPanel : Missing Passenger. 日志和 stderr.log 文件上的 NodeJs 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70028117/