Envio de string de objeto Json como mensagem syslog em Python
Estou usando essa ferramenta para obter métricas sobre o aparelho.
O script está usando sockets para enviar mensagem syslog, e estou tentando fazer com que ele envie a mensagem usando funções syslog nativas.
Eu adicionei o código abaixo, mas não consigo fazer isso funcionar.
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")
Mesmo o uso de scripts de teste está falhando. Não sou muito versado em python ou programação, mas posso me virar com alguma referência, quaisquer dicas na direção certa serão apreciadas.
Respostas
De: https://stackoverflow.com/a/38929289/1033927
Você pode usar um servidor syslog remoto: rsyslog ou o pacote python loggerglue implementa o protocolo syslog conforme descrito em rfc5424 e rfc5425. . Ao usar uma porta acima de 1024, você pode executá-lo como um usuário não root.
Dentro do módulo de registro python, você tem um SyslogHandler que também suporta o registro remoto 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')