логирование потоков через udp - PullRequest
0 голосов
/ 25 октября 2019

У меня проблема с отправкой потока регистрации через 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", и затем анализирует его.

Есть ли способ изменить кодировку журналирования на "UTF-8", используя SysLogHandler или любой другой обработчик входа в систему .?

1 Ответ

0 голосов
/ 29 октября 2019

Проблема решена. Системный журнал стороннего производителя был проанализирован на основе RFC3164

Часть MSG имеет два поля, известные как поле TAG и поле CONTENT. Таким образом, форматер будет что-то вроде

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