mirror of https://github.com/python/cpython
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__
|
||||
|
||||
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):
|
||||
"""
|
||||
Emit a record.
|
||||
|
@ -1180,12 +1194,9 @@ class HTTPHandler(logging.Handler):
|
|||
Send the record to the Web server as a percent-encoded dictionary
|
||||
"""
|
||||
try:
|
||||
import http.client, urllib.parse
|
||||
import urllib.parse
|
||||
host = self.host
|
||||
if self.secure:
|
||||
h = http.client.HTTPSConnection(host, context=self.context)
|
||||
else:
|
||||
h = http.client.HTTPConnection(host)
|
||||
h = self.getConnection(host, self.secure)
|
||||
url = self.url
|
||||
data = urllib.parse.urlencode(self.mapLogRecord(record))
|
||||
if self.method == "GET":
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Add getConnection method to logging HTTPHandler to enable custom connections.
|
Loading…
Reference in New Issue