8

ログを集中型syslogサーバーに送信するためにpython sysloghanderに取り組んでいます。コードは機能していますが、フォーマットのカスタマイズでいくつかの問題に直面しています。以下は私が書いたコードです。

#!/usr/bin/python

import logging
from logging.handlers import SysLogHandler
import subprocess

hostname = subprocess.check_output(['hostname', '-f'])
logger = logging.getLogger()
logger.setLevel(logging.INFO)
syslog = SysLogHandler(address=('log.central.log', 514))
formatter = logging.Formatter('%(asctime)s %(name)s: %(levelname)s %(message)s', '%b %e %H:%M:%S')
syslog.setFormatter(formatter)
logger.addHandler(syslog)
logger.info("My Message")

ログ フォーマッタにカスタム タグ/変数を追加することは可能ですか。ホスト名と app_name に基づいてログ ファイルを作成するように中央ログ サーバーをセットアップしたので、それらにホスト名と app_name を追加したいと考えています。

app_name を「mysql_communication_log」または「wsgi_log」に設定できるように、app_name は何でもかまいません。その後、中央サーバー上に同じ名前で別のファイルが作成されます。

私が探しているのは次のようなものです

formatter = logging.Formatter('%(asctime)s %(hostname)s %(app_name)s: %(message)s', '%b %e %H:%M:%S')
4

1 に答える 1