用tornado搭建日志服务器
对于一个分布式应用,一个计算节点上可能产生一些日志,而为了便于将这些节点日志收集并分析,我们可以选择除了在本地生成日志外,还将某些级别的日志发送到日志服务器。
Python的logging模块可以用来对日志进行一些操作,其接口和著名的Java日志库log4j类似。logging.handlers支持一系列的日志处理方式,其中发送到日志服务器可以通过SocketHandler或者HttpHandler,不过本文既然选择了tornado,还是使用HttpHandler的方式。
首先,是分布式节点的部分。首先,我们通过get_logger方法得到logger对象,并向其添加HttpHandler。
import logging
logging_host = '127.0.0.1'
logging_port = 8888
logging_add_url = '/log/add/'def get_logger():
logger = logging.getLogger()
http_handler = logging.handlers.HTTPHandler(
'%s:%s' % (logging_host, logging_port),
logging_add_url,
method='POST'
)
http_handler.setLevel(logging.ERROR)
logger.addHandler(http_handler)
return logger
代码还是很简单的,HTTPHandler接受三个参数,一个是服务器的host,日志发送到的url,以及是GET还是POST方式。这里,省去了添加本地日志的过程。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。