मैं एक केंद्रीकृत syslog सर्वर पर लॉग भेजने के लिए एक अजगर sysloghander पर काम कर रहा हूँ। कोड काम कर रहा है लेकिन प्रारूप को अनुकूलित करने में मुझे कुछ मुद्दों का सामना करना पड़ रहा है। नीचे कोड है जो मैंने लिखा है।पाइथन 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")
लॉग फॉर्मेटर में कस्टम टैग/चर जोड़ने के लिए संभव है। मैं मेजबाननाम और 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')