我使用winston将我的节点js应用程序的所有输出记录到日志文件中,但是当我将应用程序作为crontab作业运行时,它不会向日志文件写入任何内容。这是我的winston运输的设置:
var winston = require('winston'),
getTimeStamp = function() {
return new Date().toString();
}
if(process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'test') {
winston.add(winston.transports.File, {
filename: environment.logFileName,
maxsize: 1024*1024*10, //10MB
timestamp: getTimeStamp(),
colorize: true
});
winston.remove(winston.transports.Console);
}
winston.exitOnError = false;
如果我指示我的所有输出都执行cron.log文件,Winston似乎工作正常,如下所示:
0 12 * * 1 /apps/accounting/server/Invoice_Worker/test.sh >> /var/log/cron.log
或者如果我使用console.log来完成所有输出。
我也试过这样做并没有解决问题:
0 12 * * 1 /apps/accounting/server/Invoice_Worker/test.sh >> /dev/null 2>&1
无论我运行应用程序的环境如何,winston都没有写入我的测试或生产日志。任何建议都有帮助。谢谢!
答案 0 :(得分:2)
问题已经解决。我没有错误地提供我的节点服务器内的日志文件的绝对路径,而crontab总是需要绝对路径