2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

10分でCloud LoggingをPythonで使えるようにする

Last updated at Posted at 2020-11-07

#こんな方向け

・クラウドのロギングツールを探している
・リモートPCを複数稼働していて、ログを集約したい
・無料で使いたい(投稿日現在、毎月50GiBまで無料

概要

  1. 認証情報ファイルをダウンロードする
  2. GoogleのPythonライブラリのインストール
  3. お試しログ書き込み
  4. ログ閲覧

1.認証情報ファイルをダウンロードする

Setting up authenticationより、認証情報を作成して、ダウンロードする。

ダウンロードした認証情報jsonファイルの名前を「service.json」などにリネームしておく。

※認証情報「サービス アカウント」の jsonファイルがダウンロードされる。認証情報ページからは「OAuth 2.0 クライアント ID」の認証情報 jsonファイルもダウンロードできるが、そちらは違うので注意。

2.GoogleのPythonライブラリのインストール

pip install google-cloud-logging

3.お試しログ書き込み

コーディング例

import os
import sys
from google.cloud import logging
from pathlib import Path

class Logger(object):

    def __init__(self, log_name):

        # ログネームがないなら、初期化エラーにする
        if log_name == None or log_name == '':
            print('ERROR : log_name is blank')
            sys.exit()
      
        parameter = {}
        parameter['project_name'] = '【認証情報を作成したgoogleプロジェクト名を入れる("My Project"など)】'
        parameter['credential_path'] = '【認証情報jsonファイルの相対パスを入れる(同じディレクトリなら"service.json"など】'
        os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = str((Path(Path.cwd()))/parameter['credential_path'])
        logging_client = logging.Client()

        self.logger = logging_client.logger(log_name)

    # ログレベル DEBUG の書込
    def debug(self, text):
        self.logger.log_text(text, severity='DEBUG')
        print('Logged[DEBUG]: {}'.format(text))

    # ログレベル INFO の書込
    def info(self, text):
        self.logger.log_text(text, severity='INFO')
        print('Logged[INFO]: {}'.format(text))

    # ログレベル WARNING の書込
    def warning(self, text):
        self.logger.log_text(text, severity='WARNING')
        print('Logged[WARNING]: {}'.format(text))

    # ログレベル ERROR の書込
    def error(self, text):
        self.logger.log_text(text, severity='ERROR')
        print('Logged[ERROR]: {}'.format(text))

    # ログレベル CRITICAL の書込
    def critical(self, text):
        self.logger.log_text(text, severity='CRITICAL')
        print('Logged[CRITICAL]: {}'.format(text))


if __name__ == '__main__':

  logger = Logger('my-log')

  logger.debug('test debug')
  logger.info('test info')
  logger.warning('test warning')
  logger.error('test error')
  logger.critical('test critical')

4.ログ閲覧

Googleの ログエクスプローラーで、ログを閲覧する。
img.jpg

雑感

グラフィカルにログを追えるので、そこそこ使い勝手は良いと思われる。

2
2
0

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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?