Seite 1 von 1

Debug-Level als Optionen aufrufbar

Verfasst: Dienstag 8. Dezember 2009, 18:49
von hose
Hallo zusammen,

für mein Programm möchte ich verschiedene Informationen in ein Log-File oder an der Console anzeigen. Zum Beispiel möchte während der Entwicklung des Programms alle Debug-Informationen anzeigen, jedoch wenn das Programm produktiv auf dem Server läuft, ist es ausreichend, wenn das System nur eine gewisse Anzahl an Infos und alle kritischen Fehler anzeigt bzw. in eine Datei schreibt.

Damit ich die Informationsflut beim Aufruf des Programms steuern kann bietet sich höchstwahrschleinlich der OptionParser an.

Jedoch fällt mir keine allgemein gute Lösung ein, wie ich über OptionParser verschiedene Level eintragen kann, so dass nur ein Wert gültig ist (Beispiel DebugLevel = 1 oder DebugLevel = 2).

Habt Dank für Eure kreativen Vorschläge

Gruß

Holger

Verfasst: Dienstag 8. Dezember 2009, 19:16
von BlackJack
@hose: Ich verstehe das Problem nicht? Solange man die Optionen nicht so verarbeitet, dass sie in einer Liste gesammelt werden, gilt doch immer die letzte Angabe einer Option, also ist das doch immer eine Zahl!?

Bei einer grösseren Anwendung würde ich wohl eine Konfigurationsdatei für's `logging` verwenden.

Verfasst: Mittwoch 9. Dezember 2009, 00:31
von ms4py
BlackJack mein damit vermutlich das Modul [mod]logging[/mod].
Darin findest IMHO genau das, was du benötigst.

(Das 2. oder 3. Beispiel zeigt, wie du das auch nur mit sys.argv problemlos lösen kannst).

Verfasst: Mittwoch 9. Dezember 2009, 14:55
von hose
Hi,

mit dem Modul "logging" kann ich mehrere Levels ansprechen. So weit so gut. Ich möchte beim Programmaufruf mit entsprechenden Optionen nutzen, welcher Level geloggt wird.

programm.py --DEBUG
programm.py --WARNING

Was passiert aber, wenn ich programm.py --DEBUG --WARNING aufrufe.

Natürlich kann so ein Aufruf auch wie folgt aussehen

programm.py [b]-d[/b]DEBUG
programm.py [b]-d[/b]WARNING

Aber auch hier habe ich das Problem, dass eine korrekte Schreibweise erforderlich ist.

Deshalb meine Frage, welche Art von Optionen für Python - OptionParser scheint die vernüftigste Art zu sein, nur ein Logging-Level-Option auszuwählen

Gruß

hose

Verfasst: Mittwoch 9. Dezember 2009, 16:30
von ms4py
Mir ist überhaupt nicht klar, was du willst...
Formulier das mal irgendwie anders...

Verfasst: Mittwoch 9. Dezember 2009, 17:13
von BlackJack
@hose: Dann musst Du halt für die verschiedenen Level *eine* Zielvariable angeben. Ich würde die ``-d LEVELNAME``-Variante bevorzugen und die Option halt auf die möglichen Namen einschränken. Wo ist das Problem?

Verfasst: Donnerstag 17. Dezember 2009, 17:31
von hose
Ich danke Euch beiden für die Unterstützung, auch wenn ich mich nicht so klar ausgedrückt habe. Es war mehr eine phylosophische Frage.
Ich werde den Vorschlag von Black Jack umsetzen und meine Erfahrung in späteren Projekten wird mir zeigen ob sich hier eine Verbesserung notwendig macht.

LG

hose