我正在实现 pythonlogging
模块,SocketHandler
用于记录来自多台远程机器的消息。
客户端部分:
......
if self.loggerHost == "localhost":
self.loggerHost = socket.gethostname()
.......
self.logger = logging.getLogger(self.handleName)
self.logger.setLevel(logging.DEBUG)
numberOfHandles = len(self.logger.handlers)
# are there no handles in the logger
if numberOfHandles == 0:
self.loggerPort = logging.handlers.DEFAULT_TCP_LOGGING_PORT
self.socketHandler = logging.handlers.SocketHandler(self.loggerHost, self.loggerPort)
self.logger.addHandler(self.socketHandler)
......
# send the new handle to Handle table
self.__NewHandle(paramsDict=paramDict)
该__NewHandle
方法创建一个新日志:
def __NewHandle(self, paramsDict):
.......
# update logger with new log! (trace)
self.logger.debug(xmlString)
服务器部分:
while not self.abort:
rd, wr, ex = select.select([self.socket.fileno()],
[], [],
self.timeout)
# we have a read list available to read and process
if rd:
self.handle_request()
.......
问题:
当服务器可用时,一切正常,每个日志的记录速度非常快~0.1 [mS] 但是当服务器不可用时,日志记录很慢,第一个日志可能需要 1 [sec] 这对于生产来说是不可接受的。
attribute
我在 python 文档中找不到任何控制日志记录超时的内容(客户端)
所以如果我会使用logger.debug("....")
它不会花费太多时间。
有人知道如何为日志记录操作设置超时吗?如果服务器没有响应,甚至更好地忽略它?