Wie kann ich das schreiben von log-Meldungen in eine log-Datei und die Konsole zur gleichen Zeit?
Dieser code schreiben einer log-Datei und die Konsole zur gleichen Zeit?
logFile = open("logfile.log",a)
print >>logFile,message
logFile.close()
- was hat es zu tun, wenn Sie es versucht....
- seine mögliche Verwendung mehrerer handler. eine für die Behandlung von Datei - (
logging.FileHandler('mylog.log')
) und andere für den Umgang Konsole (logging.StreamHandler()
). siehe erstes Beispiel von docs.python.org/2/howto/logging-cookbook.html
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, wird es nicht schreiben.
print()
schreiben die nur für die Konsole. Ein kurzer Hinweis auf den ursprünglichen code. Ich nehme an, Sie definierenmessage
irgendwo, aber der code ist immer noch falsch. Sie müssen Anführungszeichen um dena
imopen
- Anweisung wie folgt:da vermute ich, du meintest an Datei Anhängen. Ansonsten, geben Sie den code wirft eine
NameError
seita
ist nicht eine definierte variable.Jedoch, wie schon andere gesagt haben, Sie sollten dringend mit dem Protokollierung Modul. Hier ist ein einfaches Beispiel zum schreiben auf die Konsole und log-Datei. Der code ist teilweise abgeleitet aus hier und hier:
Da logger-Objekte können mehr als ein hf, wir können mehrere Handler, schreiben an verschiedenen Orten. In meinem code, die
function_logger
Funktion erstellt ein logger-Objekt spezifisch auf die Funktion, in der es heißt.Die Funktion
f1()
ProtokolleDEBUG
level-Nachrichten und über eine Dateif1.log
beim schreibenERROR
level-Nachrichten und oben auf die Konsole, mit unterschiedlicher Formatierung für jeden.Die Funktion
f2()
jedoch meldet nichts an die Konsole und nur ProtokolleWARNING
level-Nachrichten zu seiner log Dateif2.log
. Dieses Skript ausgeführt wird, sobald die Erträge dieser Ausgabe auf der Konsole:und diese Ausgabe in
f1.log
undf2.log
bzw:f1.melden Sie:
f2.melden Sie
Nicht. Es schreibt die Datei nur. Sollten Sie verwenden
logging
Modul. Sehen http://docs.python.org/library/logging.html