我在通过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"。?
问题已解决。第三方系统日志基于RFC3164 进行解析
MSG部分有两个字段,即TAG字段和CONTENT字段。所以,格式化程序应该是类似的东西
formatter_syslog = logging.Formatter(fmt='foo: %(levelname)s - %(module)s.%(funcName)s - %(message)s')