ログを集中型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')