Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Crontab阻止winston写入我的日志文件_Javascript_Node.js_Crontab_Winston - Fatal编程技术网

Javascript Crontab阻止winston写入我的日志文件

Javascript Crontab阻止winston写入我的日志文件,javascript,node.js,crontab,winston,Javascript,Node.js,Crontab,Winston,我使用winston将我的node js应用程序的所有输出记录到日志文件中,但当我将应用程序作为crontab作业运行时,它不会向日志文件写入任何内容。这是我的winston transport的设置: var winston = require('winston'), getTimeStamp = function() { return new Date().toString(); } if(process.env.NODE_ENV === '

我使用winston将我的node js应用程序的所有输出记录到日志文件中,但当我将应用程序作为crontab作业运行时,它不会向日志文件写入任何内容。这是我的winston transport的设置:

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不会写入我的测试或生产日志,无论我运行应用程序的环境如何。任何建议都会有帮助。谢谢

问题已经解决了。我犯了一个错误,没有在我的节点服务器中提供日志文件的绝对路径,crontab总是需要绝对路径

很多时候,一个问题涉及到“X不会写入文件”,它与权限有关。我不确定winston或node是如何工作的,但它可能值得检查。