Python udp上的流日志记录

Python udp上的流日志记录,python,logging,udp,Python,Logging,Udp,我无法通过udp将日志流发送到收集日志流的目标第三方计算机 我只有几行init出现在远程控制台上。udp上的编码也应该是UTF-8 ## setup_loggin function body handler=logging.StreamHandler() handler.setFormatter(formatter) socketHandler=logging.handlers.SysLogHandler(address(SYSLOG_IP, 514)) socketHandler.setFor

我无法通过udp将日志流发送到收集日志流的目标第三方计算机

我只有几行init出现在远程控制台上。udp上的编码也应该是UTF-8

## setup_loggin function body
handler=logging.StreamHandler()
handler.setFormatter(formatter)
socketHandler=logging.handlers.SysLogHandler(address(SYSLOG_IP, 514))
socketHandler.setFormatter(formatter)
logger = logging.getLogger(name)
if not logger.handlers:
    logger.setLevel(log_level)
    logger.addHandler(handler)
    logger.addHandler(socketHandler)
return logger
远程服务器刚刚开始记录最终结果。可能是因为它期望UDP接收“UTF-8”,然后通过解析它


是否有办法使用SysLogHandler或任何其他loggin处理程序将日志编码更改为“UTF-8”?

问题已解决。第三方系统日志分析基于

MSG部分有两个字段,称为标记字段和内容字段。 所以,格式化程序应该是

formatter_syslog = logging.Formatter(fmt='foo: %(levelname)s - %(module)s.%(funcName)s - %(message)s')

您正在记录的消息有多大?AFAICT消息倾向于获取数据的大小,这不是问题。我可以在第三方服务器上看到,当它解析预期为“UTF-8”的传入消息时,它会抱怨。我将rsyslogd添加到客户端,现在它工作正常。不是我喜欢的真正的解决方案,但它可以工作。
SysLogHandler
应该发送utf8编码的消息,请参见例如。