การส่งสตริงวัตถุ Json เป็นข้อความ syslog ใน Python
Oct 28 2020
ฉันใช้เครื่องมือนี้เพื่อรับเมตริกบนอุปกรณ์
สคริปต์กำลังใช้ซ็อกเก็ตเพื่อส่งข้อความ syslog และฉันกำลังพยายามให้มันส่งข้อความโดยใช้ฟังก์ชัน syslog ดั้งเดิม
ฉันได้เพิ่มรหัสด้านล่างไปแล้ว แต่ดูเหมือนจะไม่สามารถใช้งานได้
def sendSyslog2(jsonObj):
if (logHostAvailable["syslog"]==True):
logging.info("SYSLOG REQUEST: "+json.dumps(jsonObj))
try:
syslog.openlog(facility=syslog.LOG_LOCAL5)
syslog.syslog(syslog.LOG_INFO, json.dumps(jsonObj))
except:
logging.error("syslog failed")
แม้แต่การใช้สคริปต์ทดสอบก็ล้มเหลว ฉันไม่ชำนาญใน python หรือการเขียนโปรแกรม แต่ฉันสามารถใช้ข้อมูลอ้างอิงได้บ้างคำแนะนำใด ๆ ในทิศทางที่ถูกต้องชื่นชม
คำตอบ
sarvesh.lad Dec 15 2020 at 21:57
จาก: https://stackoverflow.com/a/38929289/1033927
คุณสามารถใช้เซิร์ฟเวอร์ syslog แบบรีโมต: rsyslog หรือ python package loggerglue ใช้โปรโตคอล syslog ตามที่ถอดรหัสใน rfc5424 และ rfc5425 . เมื่อคุณใช้พอร์ตที่สูงกว่า 1024 คุณสามารถเรียกใช้ในฐานะผู้ใช้ที่ไม่ใช่รูท
ภายในโมดูลการบันทึก python คุณมี SyslogHandler ซึ่งสนับสนุนการบันทึกระยะไกล syslog ด้วย
import logging
import logging.handlers
my_logger = logging.getLogger('MyLogger')
my_logger.setLevel(logging.DEBUG)
handler = logging.handlers.SysLogHandler(address = ('127.0.0.1',514))
my_logger.addHandler(handler)
my_logger.debug('this is debug')
my_logger.critical('this is critical')