このトピックでは、Logtailを使用してPythonログを収集する方法について説明します。
背景情報
Pythonロギングモジュールは、サードパーティのモジュールまたはアプリケーションで使用できる一般的なロギングシステムを提供します。 ロギングモジュールは、複数のログレベルとロギング方法を定義します。 ロギングモジュールは、ロガー、ハンドラ、フィルタ、およびフォーマッタのコンポーネントで構成されています。
Formattersはログの出力形式を指定します。 フォーマッタ用に設定されているフィールドは、%(key)s形式です。 サンプルコード:
import logging
import logging.handlers
LOG_FILE = 'tst.log'
handler = logging.handlers.RotatingFileHandler(LOG_FILE, maxBytes = 1024*1024, backupCount = 5) # Create a handler.
fmt = '%(asctime)s - %(filename)s:%(lineno)s - %(levelno)s %(levelname)s %(pathname)s %(module)s %(funcName)s %(created)f %(thread)d %(threadName)s %(process)d %(name)s - %(message)s' // Define the output format of logs.
formatter = logging.Formatter(fmt) # Create a formatter.
handler.setFormatter(formatter) # Add the formatter to the handler.
logger = logging.getLogger('tst') # Retrieve a logger that is named tst.
logger.addHandler(handler) # Add the handler to the logger.
logger.setLevel(logging.DEBUG)
logger.info('first info message')
logger.debug('first debug message')
次の表に、サンプルコードのフィールドを示します。
項目 | 説明 |
%(name)s | 呼び出しのログに使用されるロガーの名前。 |
%(levelno)s | 数値形式のログレベル。 |
%(levelname)s | テキスト形式のログレベル。 有効な値: DEBUG、INFO、WARNING、ERROR、およびCRITICAL。 |
%(pathname)s | ログファイルのパス。 |
%(filename)s | ログファイル名。 |
%(module)s | ログ収集のソースモジュールの名前。 |
%(funcName)s | ログ呼び出しを含む関数の名前。 |
%(lineno)d | 関数を含むステートメントのソース行番号。 |
%(created)f | ログが生成される時刻。 時刻は UNIX のタイムスタンプです。 |
%(relativeCreated)d | ログが生成された時刻とログモジュールがロードされた時刻の差。 単位:ミリ秒。 |
%(asctime)s | ログが生成される時刻。 例: 2003-07-08 16:49:45,896。ここで、896は時間のミリ秒部分を示します。 |
%(msecs)d | ログが生成される時間のミリ秒部分。 |
%(thread)d | スレッドID。 |
%(threadName)s | スレッド名。 |
% (プロセス) d | プロセスID。 |
%(message)s | ログ情報。 |
手順
Simple Log Serviceは、Logtail設定の作成に役立つ設定ウィザードを提供します。 次の例では、フル正規表現モードでPythonログを収集する方法を説明します。
にログインします。Simple Log Serviceコンソール.
[データのインポート] セクションで、[RegEx - Text Log] を選択します。
プロジェクトとLogstoreを選択します。 そして、[次へ] をクリックします。
[応用サーバーグループ] セクションにマシングループが表示されていることを確認し、[次へ] をクリックします。
重要マシングループを作成した直後にマシングループを適用すると、マシングループのハートビートステータスがFAILになる可能性があります。 この問題は、マシングループがSimple Log Serviceに接続されていないために発生します。 この問題を解決するには、[自動再試行] をクリックします。 問題が解決しない場合は、Logtailでハートビート接続が検出されない場合はどうすればよいですか?
データをプレビューし、インデックスを設定し、[次へ] をクリックします。 インデックスの詳細については、「インデックスの作成」をご参照ください。
[ログクエリ] をクリックします。 Logstoreのクエリと分析ページにリダイレクトされます。
インデックスが有効になるまで約1分待つ必要があります。 次に、収集したログを [生ログ] タブで表示できます。 詳細については、「ログの照会と分析」をご参照ください。