Hi there, I use python3-logstash in my project to collection information. Without heartbeat,
pseudocode as below:
class LogHandler:
def __init__(self, app_name):
self.__appName = app_name
self.__logger = logging.getLogger(app_name)
self.__logger.setLevel(LOG_LEVEL)
self.__logger.addHandler(logstash.AMQPLogstashHandler(host=config.CURRENT_CONFIG['LOG_HOST'],
port=config.CURRENT_CONFIG['LOG_PORT'],
username=config.CURRENT_CONFIG['LOG_USERNAME'],
password=config.CURRENT_CONFIG['LOG_PASSWORD'],
virtual_host=config.CURRENT_CONFIG['LOG_VIRTUAL_HOST'],
durable=True,
exchange=config.CURRENT_CONFIG['LOG_EXCHANGE'],
version=1))
def debug(self, msg):
self.__logger.debug(msg=msg, extra={"appname": self.__appName, "log_type": "BizLog"})
def info(self, msg):
self.__logger.info(msg=msg, extra={"appname": self.__appName, "log_type": "BizLog"})
def error(self, msg):
self.__logger.error(msg=msg, extra={"appname": self.__appName, "log_type": "ErrorLog"})
def warning(self, msg):
self.__logger.warning(msg=msg, extra={"appname": self.__appName, "log_type": "BizLog"})
After my project runs for a while, I get error as below:
--- Logging error ---
Traceback (most recent call last):
File "/soft/python3.7.2/lib/python3.7/logging/handlers.py", line 631, in emit
self.send(s)
File "/soft/python3.7.2/lib/python3.7/logging/handlers.py", line 579, in send
self.sock.sendall(s)
File "/soft/python3.7.2/lib/python3.7/site-packages/logstash/handler_amqp.py", line 120, in sendall
properties=self.spec)
File "/soft/python3.7.2/lib/python3.7/site-packages/pika/adapters/blocking_connection.py", line 2120, in basic_publish
mandatory, immediate)
File "/soft/python3.7.2/lib/python3.7/site-packages/pika/adapters/blocking_connection.py", line 2206, in publish
immediate=immediate)
File "/soft/python3.7.2/lib/python3.7/site-packages/pika/channel.py", line 415, in basic_publish
raise exceptions.ChannelClosed()
pika.exceptions.ChannelClosed
This error can be solved by restarting my project. But I'm thinking about is it better that AMQPLogstashHandler add heartbeat to pika?
Hi there, I use
python3-logstashin my project to collection information. Without heartbeat,pseudocode as below:
After my project runs for a while, I get error as below:
This error can be solved by restarting my project. But I'm thinking about is it better that
AMQPLogstashHandleraddheartbeatto pika?