【问题标题】:Crontab blocking winston to write to my log filescrontab 阻止 winston 写入我的日志文件
【发布时间】:2015-06-20 16:12:29
【问题描述】:

我正在使用 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 都不会写入我的测试或生产日志。任何建议都会有所帮助。谢谢!

【问题讨论】:

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

标签: javascript node.js crontab winston


【解决方案1】:

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

【讨论】:

    最近更新 更多