python HTTP Server Output deaktivieren?
Na ihr, ich sitze im moment an einem Server Projekt und versuche einen übersichtlichen console output zu gestallten. Das Klapp an sich auch ganz gut, leider stört mich die vom server selbst generierten Outputs: Als Beispiel: "xx.xxx.xxx.xx - - [04/Dec/2023 17:05:05] "Irgenwas?Irgendwas123" 200 - "; Wie kann cih dies daktivieren?
1 Antwort
Jetzt wäre es natürlich hilfreich zu wissen, auf welche Serverimplementierung Du zurüclgreifst. Die Dokumentation könnte dabei helfen festzustellen, ob man ein Log Target angeben kann und wohin er standardmäßig logged.
Wenn hier nach STDERR gelogged wird, dann könnte man diesbezüglich ein redirect machen.
Für HTTPServer aus http.server könnte man das in der Moduldokumentation nachlesen.
Hier wird als default an sys.stderr gelogged.
Wie deaktiviere ich das jetzt? Also, welches loggformat.
Ich zitiere ungerne:
This is typically overridden to create custom error logging mechanisms.
class MyServer(http.server.HTTPServer):
def log_message(self,fmt,**args):
pass
Dann instanziierst Du einfach diese abgeleitet Klasse und das Loggin wird nicht mehr ausgeführt (Habs nicht getestet, aber so wäre der Grundansatz). Sinnvollerweise würdest Du Dein eigenes log_message bedarfsgerecht umsetzen.
Sonst kannst Du immernoch sys.stderr umleiten.
Ich benutze tatsächlich die oben genannte standard Bibliothek.