0
我正在使用python日誌記錄來記錄我的程序。所有日誌都打印在stdout上,但我希望它們可以使用POST REST調用發送到遠程日誌服務器。目前,我的程序發出多個POST請求進行日誌記錄。是否有更優化的方式發送日誌,我可以在單個POST請求中捆綁多個日誌?使用python日誌記錄遠程日誌
import logging.handlers
class SumoHTTPHandler(logging.Handler):
def __init__(self, url, host="collectors.sumologic.com", name=None, compressed=False):
"""
Similar to HTTPHandler but with some custom Sumo-friendly headers
"""
logging.Handler.__init__(self)
self.host = host
self.url = url
self.name = name
def emit(self, record):
# this is called multiple times.
try:
host = self.host
h = httplib.HTTPS(host)
url = self.url
data = urllib.quote(self.format(record))
sep = "?"
url = url + "%c%s" % (sep, data)
h.putrequest("GET", url)
h.putheader("Host", host)
except (KeyboardInterrupt, SystemExit):
raise
except:
self.handleError(record)
不確定你的確切情況,但是,通常在單個請求(如批處理日誌記錄)中捆綁多個日誌請求可能不會記錄真實的圖片。如果批次失敗,可能很難恢復日誌。您可以異步執行* fire和forget *請求,以便應用程序性能不受影響。取決於你的情況。 –