web-dev-qa-db-ja.com

herokuでnode.jsからすべてのconsole.logを表示する方法は?

Node.jsアプリケーションをnode.jsにデプロイしましたが、アプリから完全なconsole.logステートメントを見ることができません。使っています:

heroku logs

一部のログは表示されますが、完全なログではないようです。デプロイされたアプリからメールを送信するnode.jsパッケージはありますか? localmachine btwからの電子メールは正常に機能します。

メールコード:

console.log('try to send email hold on');
    var nodemailer = require("nodemailer");
    var smtpTransport = nodemailer.createTransport({
        service: "Gmail",
        auth: {
            user: "[email protected]",
            pass: "mypw"
        }
    });

    smtpTransport.sendMail({
        from: "Dikkebil", // sender address
        to: "[email protected]", // comma separated list of receivers
        subject: "Error body", // Subject line
        text: 'Error body: ' +error.body+ '\n'+ 'error type:' + error.type +'\n' +'error statuscode:' +error.statusCode +'\n'  + 'error args:' + error.arguments[0]
    }, function(error, response){
        if(error){
            console.log(error);
        }else{
            console.log("Message sent: " + response.message);
        }
    });
35
Pindakaas

Heroku docから:

Logsコマンドは、デフォルトで100行のログを取得します。 --num(または-n)オプションを使用して、取得するログ行数(最大1,500行まで)を指定できます。

$ heroku logs -n 200

したがって、おそらく-noptionを使用してさらに行を要求する必要があります。

受け取ったコメントごとに、次のようにして現在のログをストリーミングすることもできます。

$ heroku logs --tail

ドキュメントをご覧ください

37
michelem

私はいつもheroku logs -t --app your-app-nameherokコンソールを開いたままにします。

11

問題は、Herokuが最大1500行のログを保持していることのようです。持続し、より多くの履歴を表示できるようにするには、syslogドレインを追加してログを取得するか、アドオンを使用する必要があります。

LogentriesやPapertrailなどのログを保存するための「無料の」アドオンもあります https://addons.heroku.com/#logging

2
Risto Novik

私が使う:

heroku logs -n 1000 --tail

その1000は表示する行の数であり、最大で1500行です。

0