LoginSignup
17
8

More than 5 years have passed since last update.

Cloud Functions for Firebase のログをコマンドラインで確認する

Last updated at Posted at 2017-12-12

@mono0926 さんから Stackdriver についてコメントをいただき、それを見るのが一番良さそうです :pray:


Cloud Functions のログを見るのに一番手っ取り早いのは、管理画面から直でログをみる方法です。

ezgif-4-34ea461a5b.gif

リアルタイムにログも流すことができて、ログレベルも見やすいですね。

しかし欠点があって、1行が長いログを開いてスクロールすると下まで見切れずに次のログが表示されてしまったり、ログをコピーしようと思ってもうまくコピーできません。

Developer Tools で要素の検証からアクセスすればみれますが、面倒ですね。

firebase functions:log

そんな時はコマンドラインからログを参照しましょう。

firebase functions:log のコマンドでログを取得して表示できます。
--only functionName, --lines 10 のように引数をつけてログの取得もできます。

実際にやってみると

$ firebase functions:log --only addMessage --lines 5
2017-12-12T13:32:41.096Z N addMessage: undefined
2017-12-12T13:34:30.832550500Z D addMessage: Function execution started
2017-12-12T13:34:30.832615922Z D addMessage: Billing account not configured. External network is not accessible and quotas are severely limited. Configure billing account to remove these restrictions
2017-12-12T13:34:31.411Z I addMessage: IncomingMessage {
  _readableState:
   ReadableState {
     objectMode: false,
     highWaterMark: 16384,

..中略..

        finished: false,
        _head
2017-12-12T13:34:32.053563601Z D addMessage: Function execution took 1222 ms, finished with status code: 303

という感じでコマンドラインでログを取得できました。これならコピペもできますね。

しかし長すぎるログは途中でカットされてしまうようです。 :cry:
カットされたログは2500文字程度だったので、その程度が目安かもしれません。

コマンドラインでもログを Streaming したかった

コマンドだとログを1発取得しかできずに Streaming することができません、対して管理画面ではログが Stream で流れてきます。

10秒に1回 firebase functions:log を叩いて、新しいログがあればそれを表示する仕組みを作ればコマンドラインでも Streaming になるのではと思い、やってみました。

Screen.gif

Gif の再生時間が長くてわかりにくいですが、コマンド実行後は待っているだけで最新のログが取得されていきます。

しかしこのやり方は 失敗 で、理由は以下です。

  • firebase functions:log の取得が遅くログが出てくるまで結構ラグが生まれてしまう
  • ログの取得は重いようで、連続してアクセスすると 500 エラーが返ってきてしまう
    • サーバに負荷をかけてしまうようなのでログのポーリングはすべきでない

ソースコードは以下に公開していますが、使用は非推奨です。
https://github.com/starhoshi/firebase-log-tailer

結論

  • リアルタイムのログを眺めたいときは管理画面からログを眺めましょう
  • ログをコピーしたいとき、長いログをみたいときは firebase functions:log で確認しましょう
17
8
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
8