ZHIWEI666 commited on
Commit
eba2ec5
·
verified ·
1 Parent(s): f8aacdd

Upload 95 files

Browse files
Files changed (1) hide show
  1. runtime_log_privacy.py +25 -0
runtime_log_privacy.py CHANGED
@@ -84,8 +84,33 @@ class UvicornPrivacyFilter(logging.Filter):
84
  return True
85
 
86
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  def install_uvicorn_privacy_filters():
88
  for name in ('uvicorn.access', 'uvicorn.error'):
89
  logger = logging.getLogger(name)
90
  if not any(isinstance(item, UvicornPrivacyFilter) for item in logger.filters):
91
  logger.addFilter(UvicornPrivacyFilter())
 
 
 
 
 
84
  return True
85
 
86
 
87
+ class HttpxPrivacyFilter(logging.Filter):
88
+ def filter(self, record):
89
+ if record.name != 'httpx':
90
+ return True
91
+ method = version = 'unknown'
92
+ status = 0
93
+ args = record.args
94
+ if (type(record.msg) is str and record.msg == 'HTTP Request: %s %s "%s %d %s"'
95
+ and type(args) is tuple and len(args) == 5):
96
+ if type(args[0]) is str and args[0] in {'GET', 'HEAD', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS', 'CONNECT', 'TRACE'}:
97
+ method = args[0]
98
+ if type(args[2]) is str and args[2] in {'HTTP/1.0', 'HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'}:
99
+ version = args[2]
100
+ if type(args[3]) is int and 100 <= args[3] <= 599:
101
+ status = args[3]
102
+ record.msg = 'HTTP_CLIENT_REQUEST | method=%s | protocol=%s | status=%d'
103
+ record.args = (method, version, status)
104
+ record.exc_info = record.exc_text = record.stack_info = None
105
+ return True
106
+
107
+
108
  def install_uvicorn_privacy_filters():
109
  for name in ('uvicorn.access', 'uvicorn.error'):
110
  logger = logging.getLogger(name)
111
  if not any(isinstance(item, UvicornPrivacyFilter) for item in logger.filters):
112
  logger.addFilter(UvicornPrivacyFilter())
113
+
114
+ logger = logging.getLogger('httpx')
115
+ if not any(isinstance(item, HttpxPrivacyFilter) for item in logger.filters):
116
+ logger.addFilter(HttpxPrivacyFilter())