bpo-39826: add getConnection() hook to logging HTTPHandler (GH-18745)
This commit is contained in:
parent
be501ca241
commit
22a9a546ff
|
@ -1173,6 +1173,20 @@ class HTTPHandler(logging.Handler):
|
||||||
"""
|
"""
|
||||||
return record.__dict__
|
return record.__dict__
|
||||||
|
|
||||||
|
def getConnection(self, host, secure):
|
||||||
|
"""
|
||||||
|
get a HTTP[S]Connection.
|
||||||
|
|
||||||
|
Override when a custom connection is required, for example if
|
||||||
|
there is a proxy.
|
||||||
|
"""
|
||||||
|
import http.client
|
||||||
|
if secure:
|
||||||
|
connection = http.client.HTTPSConnection(host, context=self.context)
|
||||||
|
else:
|
||||||
|
connection = http.client.HTTPConnection(host)
|
||||||
|
return connection
|
||||||
|
|
||||||
def emit(self, record):
|
def emit(self, record):
|
||||||
"""
|
"""
|
||||||
Emit a record.
|
Emit a record.
|
||||||
|
@ -1180,12 +1194,9 @@ class HTTPHandler(logging.Handler):
|
||||||
Send the record to the Web server as a percent-encoded dictionary
|
Send the record to the Web server as a percent-encoded dictionary
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
import http.client, urllib.parse
|
import urllib.parse
|
||||||
host = self.host
|
host = self.host
|
||||||
if self.secure:
|
h = self.getConnection(host, self.secure)
|
||||||
h = http.client.HTTPSConnection(host, context=self.context)
|
|
||||||
else:
|
|
||||||
h = http.client.HTTPConnection(host)
|
|
||||||
url = self.url
|
url = self.url
|
||||||
data = urllib.parse.urlencode(self.mapLogRecord(record))
|
data = urllib.parse.urlencode(self.mapLogRecord(record))
|
||||||
if self.method == "GET":
|
if self.method == "GET":
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Add getConnection method to logging HTTPHandler to enable custom connections.
|
Loading…
Reference in New Issue