在Python中以syslog消息的形式发送Json对象字符串

在Python中以syslog消息的形式发送Json对象字符串,python,json,syslog,Python,Json,Syslog,我正在使用以获取设备的指标 脚本使用套接字发送syslog消息,我试图让它使用本机syslog函数发送消息 我添加了下面的代码,但似乎无法使其正常工作 def sendSyslog2(jsonObj): if (logHostAvailable["syslog"]==True): logging.info("SYSLOG REQUEST: "+json.dumps(jsonObj)) try: syslog.openlog(

我正在使用以获取设备的指标

脚本使用套接字发送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或编程,但我可以通过一些参考资料,任何方向正确的指针都值得赞赏。

来自:

您可以使用远程系统日志服务器:rsyslog或python包loggerglue实现rfc5424和rfc5425中描述的系统日志协议。当您使用1024以上的端口时,可以作为非root用户运行它

在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')
发件人:

您可以使用远程系统日志服务器:rsyslog或python包loggerglue实现rfc5424和rfc5425中描述的系统日志协议。当您使用1024以上的端口时,可以作为非root用户运行它

在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')

我最终使用了此处推荐的logging.handlers:我最终使用了此处推荐的logging.handlers: