Debug-Level als Optionen aufrufbar

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
hose
User
Beiträge: 4
Registriert: Dienstag 8. Dezember 2009, 18:15
Wohnort: Wehringen

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
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.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

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).
hose
User
Beiträge: 4
Registriert: Dienstag 8. Dezember 2009, 18:15
Wohnort: Wehringen

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
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Mir ist überhaupt nicht klar, was du willst...
Formulier das mal irgendwie anders...
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?
hose
User
Beiträge: 4
Registriert: Dienstag 8. Dezember 2009, 18:15
Wohnort: Wehringen

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
Antworten