私はpython sysloghanderを使ってログを集中syslogサーバに送信しています。コードは機能していますが、私はフォーマットをカスタマイズする際にいくつかの問題に直面しています。以下は私が書いたコードです。Python sysloghandlerでカスタムのアプリケーション名を設定する方法
#!/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")
カスタムタグ/変数をログフォーマッタに追加することは可能ですか?私はhostnameとapp_nameに基づいてログファイルを作成するために、セットアップ用の中央ロギングサーバーを持っているので、hostnameとapp_nameを追加したいと思います。
app_nameはapp_nameに "mysql_communication_log"または "wsgi_log"を設定することができます。次に、中央サーバーで別々のファイルが同じ名前で作成されます。私が探しています何
は(docsを参照)
formatter = logging.Formatter('%(asctime)s %(hostname)s %(app_name)s: %(message)s', '%b %e %H:%M:%S')