Server verschluckt keine Fehler mehr
Der Filter in log_message pruefte args[0] mit "in", bekommt bei send_error aber einen HTTPStatus statt der Anfragezeile. Der TypeError riss den Handler-Thread mit, der Browser wartete auf eine Antwort, die nie kam, und die Seite blieb ohne Meldung bei "Lade Screens ..." stehen. args[0] wird jetzt in str() gewickelt, und alles, was keine gewoehnliche Anfragezeile ist, wird geloggt statt verschluckt. Genau das haette die Suche vorher abgekuerzt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
3f72d892c5
commit
71a7ac79a9
1 file changed
+8
-1
@@ -218,9 +218,16 @@ class Handler(http.server.SimpleHTTPRequestHandler):
|
||||
super().end_headers()
|
||||
|
||||
def log_message(self, fmt, *args):
|
||||
first = args[0] if args else ""
|
||||
# args[0] ist normalerweise die Anfragezeile, bei send_error aber ein
|
||||
# HTTPStatus. Ohne str() flog hier ein TypeError, der den Handler-Thread
|
||||
# abbrach: der Browser wartete dann ewig auf eine Antwort, die nie kam,
|
||||
# und die Seite blieb bei "Lade Screens ..." stehen.
|
||||
first = str(args[0]) if args else ""
|
||||
if "POST /save" in first or "DELETE" in first:
|
||||
super().log_message(fmt, *args)
|
||||
elif not first.startswith(("GET", "POST", "HEAD")):
|
||||
# Fehler und Warnungen gehoeren gesehen, sonst sucht man lange.
|
||||
super().log_message(fmt, *args)
|
||||
|
||||
|
||||
class Server(socketserver.ThreadingTCPServer):
|
||||
|
||||
Reference in new issue
Block a user