我有一个 Python 进程,其输出在其他处理程序中通过 tcp 记录到 syslog 服务器。系统日志服务器可能会不时发生一些停机时间。无论日志记录机制如何,我都需要运行脚本。是否有任何选项/常用(或内置)库用于缓冲日志并无限重试我可能丢失的,或者我是否需要为我的日志编写一个自定义包装类来处理缓冲和重试?
当我停止 syslog 服务器时会出现问题,在这种情况下,任何“记录器”语句都会引发错误并停止脚本执行。
import logging
from logging.handlers import SysLogHandler
...
logger = logging.getLogger()
handler = SysLogHandler(address=syslog_address, socktype=socket.SOCK_STREAM)
logger.addHandler(handler)
...
logger.info("Some statements all over my code I want logged and buffered if possible but I do not want to raise exceptions stopping execution and I don't want to repeat myself wrapping them all in try/except blocks"