#こんな方向け
・クラウドのロギングツールを探している
・リモートPCを複数稼働していて、ログを集約したい
・無料で使いたい(投稿日現在、毎月50GiBまで無料)
概要
- 認証情報ファイルをダウンロードする
- GoogleのPythonライブラリのインストール
- お試しログ書き込み
- ログ閲覧
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の ログエクスプローラーで、ログを閲覧する。
雑感
グラフィカルにログを追えるので、そこそこ使い勝手は良いと思われる。