Symfoware

Symfowareについての考察blog

Google App Engine + Pythonでローカル実行、サーバー実行時のログの出力

久しぶりにGoogle App Engineを触ってみました。
Ubuntu 18.04にGoogle App Engine(GAE) + Pythonの開発環境を構築する

デバッグログの出力方法について調べてみます。


ローカル実行でのログ出力



調べてみると、loggingモジュールを使って出力すればOKだそうで。


  1. import logging
  2. import webapp2
  3. class MainPage(webapp2.RequestHandler):
  4.     def get(self):
  5.         logging.debug('### debug output ###')
  6.         self.response.headers['Content-Type'] = 'text/plain'
  7.         self.response.write('Hello, World!')
  8. app = webapp2.WSGIApplication([
  9.     ('/', MainPage),
  10. ], debug=True)



コンソールで、デバッグサーバー起動。


$ dev_appserver.py app.yaml



このコンソールにログが出力されると思っていたのですが、何も表示されず。
調べているとこのページにたどり着きました。
https://cloud.google.com/appengine/docs/standard/python/logs/

どうも「--logs_path [出力パス]」オプション付きで起動しないと行けない模様。


$ dev_appserver.py --logs_path log.db app.yaml



これでlog.dbというファイルにデバッグログが出力されるようになります。
ポイントは、通常のテキストではなくsqlite形式のデータベースであること。
ログの閲覧用に「DB Browser for SQLite」をインストールしました。


$ sudo apt-get install sqlitebrowser
$ sqlitebrowser



出力されたログファイルを開いてみます。

874_01.png

自分で仕込んだデバッグログが出力されていました。
なるほど。

874_02.png



サーバー上のログ出力



サーバーでのログはログビュワーで確認できました。

874_03.png

これでプログラムのデバッグができそうです。

関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2018/05/04(金) 14:44:26|
  2. Python
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<LINE API + Google App Engine + Pythonでボットを作成する | ホーム | LINE API + Pythonでスタンプや画像メッセージの送信>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
https://symfoware.blog.fc2.com/tb.php/2169-1ee53398
この記事にトラックバックする(FC2ブログユーザー)