http message meldungen simplehttp server

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Hardware
User
Beiträge: 16
Registriert: Samstag 15. April 2006, 14:18

Freitag 21. April 2006, 07:50

wo kann ich die meldungen abschalten?

cw02.HH1.srv.t-online.de - - [21/Apr/2006 08:44:10] code 408, message Request Time-out

ich bekomme die immer in die console aber die sollen eigentlich unterdrückt werden
Hardware
User
Beiträge: 16
Registriert: Samstag 15. April 2006, 14:18

Freitag 21. April 2006, 08:02

z.b. close ich eine connection mit self.send_error(408)

was auch gut klappt aber auf der console wird der http error auch angezeigt was ich eigentlich nicht haben will
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 21. April 2006, 08:53

Geht zum Beispiel so:

Code: Alles auswählen

import SimpleHTTPServer, SocketServer

port = 8080

def nothing(*args):
    pass

handler = SimpleHTTPServer.SimpleHTTPRequestHandler

handler.log_message = nothing

httpd = SocketServer.TCPServer(("", port), handler)

httpd.serve_forever()
My god, it's full of CARs! | Leonidasvoice vs Modvoice
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Freitag 21. April 2006, 15:07

Leonidas hat geschrieben:Geht zum Beispiel so:
pfui ^^

Lieber so:

Code: Alles auswählen

import SimpleHTTPServer, SocketServer

port = 8080

class SimpleHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
     def log_message(self, *args):
          pass

httpd = SocketServer.TCPServer(("", port), SimpleHandler)

httpd.serve_forever()
TUFKAB – the user formerly known as blackbird
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 21. April 2006, 16:44

blackbird hat geschrieben:
Leonidas hat geschrieben:Geht zum Beispiel so:
pfui ^^
He, lass mir doch mein Monkeypatching ;)

Na gut, dein Code geht wirklich sauberer -.-
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Hardware
User
Beiträge: 16
Registriert: Samstag 15. April 2006, 14:18

Sonntag 23. April 2006, 04:55

ich habe einfach den msg in dem httpbase.py auskommentiert
nun ist Ruhe im Display
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 23. April 2006, 12:31

Hardware hat geschrieben:ich habe einfach den msg in dem httpbase.py auskommentiert
Ihh! Das ist ja noch schlimmer als mein Monkey-Patch. Warum hast du das denn gemacht, wenn alle beide Lösungen funktionieren würden?
Ich meine, wenn ich in einem Programm die Option habe die Logs abzuschalten, dann mache ich das auch. Ich bauen nicht die Logfunktion aus und kompiliere das Programm neu, wenn es doch einfacher und sauberer auch möglich ist.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Hardware
User
Beiträge: 16
Registriert: Samstag 15. April 2006, 14:18

Sonntag 23. April 2006, 17:36

Leonidas hat geschrieben:
Hardware hat geschrieben:ich habe einfach den msg in dem httpbase.py auskommentiert
Ihh! Das ist ja noch schlimmer als mein Monkey-Patch. Warum hast du das denn gemacht, wenn alle beide Lösungen funktionieren würden?
Ich meine, wenn ich in einem Programm die Option habe die Logs abzuschalten, dann mache ich das auch. Ich bauen nicht die Logfunktion aus und kompiliere das Programm neu, wenn es doch einfacher und sauberer auch möglich ist.
war das einfachste für mich
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 23. April 2006, 17:49

Hardware hat geschrieben:war das einfachste für mich
Wunder dich dann nicht, wenn die verschiedensten Sachen nicht mehr gescheit funktionieren.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Sonntag 23. April 2006, 17:55

Was Leonidas damit sagen will:

Wenn Du demnächst eine Frage stellst:

"ich hab ein Problem mit einem Python-Programm, ich will einen gugu erstellen, aber der macht irgendwelchen gaga, was muß ich anders machen?"

dann wird von uns einfach nur die Antwort kommen:

"Installier Dir erst mal Python, und lass es sein, an der Standardbibliothek zu wursten. Denn sobald Du Dinge daran veränderst, können wir nicht mehr sagen, was eigentlich bei Dir hinter den Kulissen stattfindet. Wir können Dir also gar nicht mehr helfen. Viel Spaß bei der Fehlersuche."

Auf jeden Fall: viel Spaß weiterhin beim Kaputtdaddeln Deiner Programmierumgebung!
--- Heiko.
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Mittwoch 26. April 2006, 10:12

@modelnine:

Nicht, dass ich Hardwares Lösung gut find und sicherlich kann das Probleme nach sich ziehen, aber: bist Du sicher, dass Du verstanden hast, was das Tolle an Open Source ist?
"Installier Dir erst mal Python, und lass es sein, an der Standardbibliothek zu wursten. Denn sobald Du Dinge daran veränderst, können wir nicht mehr sagen, was eigentlich bei Dir hinter den Kulissen stattfindet. Wir können Dir also gar nicht mehr helfen. Viel Spaß bei der Fehlersuche."
Klingt für mich wie:
Ihr Supportanspruch verfällt bei Beschädigung dieses Siegels!
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 26. April 2006, 11:15

N317V hat geschrieben:Klingt für mich wie:
Ihr Supportanspruch verfällt bei Beschädigung dieses Siegels!
N317V, wir haben ihm 2 praktikable Lösungen gegeben und er hat sein Python (womöglich) zerlegt. Wenn er jetzt die Frage stellt, warum XY nicht geht, aber bei einem Freund schon, woher sollen wir dann wissen, was er an seinem Python gemacht hat? Wenn ich alle Module der Stdlib lösche und dann im Forum frage warum ich keine Module mehr importieren kann, ohne zu sagen, dass ich was verändert habe, dann werdet ihr sicher etwas länger brauchen, mir zu helfen.
Es geht darum, dass man Sachen ändert, von denen man Ahnung hat, und auch nur dort wo es nötig ist. Wie sollen wir denn Support bieten, wenn wir nichteinmal wissen, was er für ein Produkt hat?
Oder tut jemand von euch im Apachen die Defaultoptionen im Quelltext ändern, statt die Configdatei zu verwenden?

Davon mal abgesehen kriegen wir kein Geld (keiner von uns, zahlen eigentlich sogar noch drauf) und einen Supportanspruch gibt es sowieso nicht.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Mittwoch 26. April 2006, 11:35

Ihr Supportanspruch verfällt bei Beschädigung dieses Siegels!
Das trifft den Nagel auf den Kopf.

Open Source hat nix damit zu tun, dass wir "Support" für jede mögliche (Ab)art eines Systems leisten (oder uns eben weigern das zu tun), sondern dass Hardware, wenn er Lust hat, das System selbst verändern kann, und sich so seine eigene "Distribution" baut. Nur, aus meiner Sicht als Beitragender des Python-Forums: wenn ich nicht mal mehr die Möglichkeit hab mir darüber im Klaren zu sein was für ein (Python-)System er einsetzt, kann ich auch nicht mehr helfen, egal wie sehr ich das wollte, denn ich weiß nun mal nicht was Python "packaged by Hardware" vom normalen Python unterscheidet.

Das wäre ungefähr genauso wie wenn ich die Postfix-Quellen ändere, damit ich irgendwelche Dinge erreiche, die mit dem Standardpostfix nicht gehen. Das ist sicherlich in Ordnung wenn ich irgendwas spezielles implementieren will, und gerade weil Postfix Open-Source ist hab ich die Möglichkeit das zu tun, nämlich ein Paket an meine Bedürfnisse anzupassen. Nur: wenn ich jetzt auf der Postfix-Mailingliste weinen gehe weil etwas anderes nicht mehr tut, hat Wietse das völlige Recht mir zu sagen: "Scher Dich zum Teufel! Ich supporte nur das, was ich baue/kenne!"

Dementsprechend: wenn ich schon selbst was baue (und damit mein eigener Herr werde), muß ich mir über die Konsequenzen klar sein (nämlich mögliche Imkompatibilitäten mit anderen Programmen, die die Standardbibliothek von Python auch in Ihrer "Standardfassung" erwarten; wer weiß, wie er das ganze in der Stdlib geändert hat, vielleicht braucht ein anderes Programm was er mal installieren will die Funktion die er jetzt vielleicht komplett auskommentiert hat, und läuft deswegen nicht mehr, weil sie eben erwartet auf Python von python.org ausgeführt zu werden, und nicht auf Python "packaged by Hardware").

Unabhängig davon: ich hab nicht das Gefühl, dass Hardware sich über die Konsequenzen im Klaren ist, so leichtfertig wie er einfach eine Änderung an einem Modul der Standard-Bibliothek vornimmt. Da ist es um so wichtiger, dass man ihn warnt, solche Sachen ab sofort zu lassen, da er damit, wenn er irgendwann mal im Team programmieren sollte (nicht nur in einer Firma, reicht schon dass er für ein Open-Source-Projekt Dinge schreiben will was nicht nur aus einer Person besteht), sich jegliche notwendige Kooperationsmöglichkeit direkt in der ersten Minute kaputtmacht.

Und, wie Leonidas schon sagte: zusätzlich schlimm ist es auch noch, dass Leonidas und mitsuhiko verschiedene Wege gezeigt haben, wie er sein Ziel auch ohne Änderungen an der Standardbibliothek erreichen kann. Sprich: er hat informiert Eigenmächtig gehandelt. Und, dass ich dafür keinen Support mehr leisten will, sollte selbstverständlich sein.
--- Heiko.
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Mittwoch 26. April 2006, 12:28

Natürlich gibt es hier keinerlei Anspruch auf Support. Natürlich ist die von Hardware getätigte Änderung weder sinnvoll noch notwendig. Trotzdem stößt es mir sauer auf, wenn modelnine jemanden sofort als pauschal supportunwürdig abstempelt, nur weil derjenige eine Standard-Lib geändert hat. Und gerade bei Python lässt es sich sehr leicht nachvollziehen in welchem Modul und an welcher Stelle ein Fehler auftritt und somit auch auf etwaige dort getätigte Änderungen schließen.

Möglicherweise hängt meine Reaktion auch damit zusammen, dass modelnine mir in letzter Zeit, obwohl inhaltlich immer fundiert, vom Tonfall einfach viel zu verspannt vorkommt. Ja, das war jetzt persönlich und auch genau so gemeint, denn der Hinweis von Leonidas
Wunder dich dann nicht, wenn die verschiedensten Sachen nicht mehr gescheit funktionieren.
hätte vollkommen ausgereicht. Da muss man nicht noch hinterherstochern.
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Mittwoch 26. April 2006, 13:49

N317V hat geschrieben:Natürlich gibt es hier keinerlei Anspruch auf Support. Natürlich ist die von Hardware getätigte Änderung weder sinnvoll noch notwendig. Trotzdem stößt es mir sauer auf, wenn modelnine jemanden sofort als pauschal supportunwürdig abstempelt, nur weil derjenige eine Standard-Lib geändert hat. Und gerade bei Python lässt es sich sehr leicht nachvollziehen in welchem Modul und an welcher Stelle ein Fehler auftritt und somit auch auf etwaige dort getätigte Änderungen schließen.
wissen wir wo der überall herumbastelt? Ich habe eine saubere Lösung gepostet, Leonidas eine mit ein wenig monkey-patching (auch noch ok), aber er überschreibt einfach was in seiner stdlib. Erleichtert das deployment ungemein...

//Edit; auf #python.de zu dem posting:

Code: Alles auswählen

Apr 24 15:25:51 <ryu> ModelNine: nein, aber bestimmt bekommst du wieder einen drauf
:roll:
TUFKAB – the user formerly known as blackbird
Antworten