2017-08-03 2 views
0

stackdriverコンソールにログを書き込むためにwinstonロガーを作成できません。私はGoogleのfirebase関数(firebase deployを使用)として私の機能を展開します。 consoleロギングは正常に機能しますが、プロジェクトではこのようなツールは使用しません。私が試した何Firebaseの機能:windriver with stackdriverコンソール

https://www.npmjs.com/package/@google-cloud/logging-winstonを使用してhttps://github.com/greglearns/winston-stderr

  • を使用してstderrに

    • 出力(両方winston.add(require('@google-cloud/logging-winston')); winston.log('error', 'Winston error!');も、このようなプロジェクトID projectId /サービスアカウントのJSONの資格情報などのパラメータを追加することがkeyFilenameファイル)。
    • https://github.com/findanyemail/winston-transport-stackdriver-error-reportingを使用してください。また、運がない。私はまだスタックドライバーでログを見ることができません。

    最後に私がやったこと(各再デプロイは時間がかかります)私は実験の疲れ...

  • 答えて

    0

    を提案してください - は、実際にボンネットの下console.logを呼び出すcustom transportを実施しました。これは助けになりました。

    const winston = require('winston'); 
    const util = require('util'); 
    const ClassicConsoleLoggerTransport = winston.transports.CustomLogger = function (options) { 
        options = options || {}; 
        this.name = 'ClassicConsoleLoggerTransport'; 
        this.level = options.level || 'info'; 
        // Configure your storage backing as you see fit 
    }; 
    util.inherits(ClassicConsoleLoggerTransport, winston.Transport); 
    
    ClassicConsoleLoggerTransport.prototype.log = function (level, msg, meta, callback) { 
        let args = [msg, '---', meta]; 
        switch (level) { 
         case 'verbose': 
         case 'debug': 
          console.log.apply(null, args); 
          break; 
         case 'notice': 
         case 'info': 
          console.info.apply(null, args); 
          break; 
         case 'warn': 
         case 'warning': 
          console.warn.apply(null, args); 
          break; 
         case 'error': 
         case 'crit': 
         case 'alert': 
         case 'emerg': 
          console.error.apply(null, args); 
          break; 
         default: 
          console.log.apply(null, args); 
        } 
        callback(null, true); 
    }; 
    
    関連する問題