Probleme mit time in einer log-Datei

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
JohnR
User
Beiträge: 23
Registriert: Freitag 25. Juni 2010, 19:42

Hallo

Ich möchte in einer log Datei hinter der eigentlichen Nachricht (log eines Messengers) eine Zeitangabe schreiben.

Soweit wie ich das begriffen habe (ich bin recht unerfahren in Phyton) muß ich dazu das Modul Time mit

Code: Alles auswählen

import time
verfügbar machen

und könnte dann per

Code: Alles auswählen

time.strftime("%d.%m.%Y.%H.%M",time.gmtime())
die Zeit abrufen

wenn ich das ganze in einen kleinen skript teste klappt das auch.

wenn ich das ganze aber meinem skript hinzufüge der die log Datei erzeugen soll

Code: Alles auswählen

file = open(self.name(), "a")
file.write("[log ] " + text.encode("UTF-8") + "[time ]" + time.strftime("%d.%m.%Y.%H.%M",time.gmtime())  + "/n")
file.close()
legt der nur eine leere Datei an.


lasse ich aber

Code: Alles auswählen

time.strftime("%d.%m.%Y.%H.%M",time.gmtime())
aus der obigen Zeile weg,

also schreibe nur

Code: Alles auswählen

file.write("[log ] " + text.encode("UTF-8") + "/n")
,schreibt er das log (dann halt ohne Zeitangabe).

Was mache ich denn hier verkehrt ?

Also ich bin mir sicher das ich hier eine nicht gerade "hochwertige" Frage stelle, aber ich probiere schon seit über einem Tag herum und komme einfach nicht darauf was ich hier offensichtlich nicht verstehe :K

Also versuche ich höflichst hier etwas Hilfe zu bekommen.

Gruß John
BlackJack

@JohnR: Am besten begrenzt Du das mal auf ein minimales *lauffähiges* Programm was das Problem zeigt. Denn hier sind `self` und `text` unbekannt. Wenn ich alles nötige ergänze um es lauffähig zu machen dann funktioniert das bei mir:

Code: Alles auswählen

import time

text = u'Hallo'
file = open('test.log', 'a')
file.write('[log ] ' + text.encode('utf-8') + '[time ]' + time.strftime('%d.%m.%Y.%H.%M', time.gmtime())  + '\n')
file.close()
Ich würde davon abraten `file` als Namen zu verwenden, weil es einen eingebauten Typen mit dem Namen gibt. Und ich würde Zeichenkettenformatierung verwenden statt das ganze mit ``+`` zusammenzusetzen. Aber das sollte am Problem nichts verändern.

Man beachte übrigens auch das Zeichen für's Zeilenende was bei Deinen Beispielen falsch war.

Sollte das bei Dir laufen, dann liegt das Problem woanders.
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Das sollte eigentlich beides so klappen, und ich bin mir sicher, dass das nichts mit dem `time`-Kram zu tun hat. Vielleicht schließt du die Datei nicht richtig?

btw, 1. meinst du bestimmt \n statt /n und 2. solltest du dir definitiv mal das `datetime`-Modul anschauen.
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Und das 'logging'-Modul (sobald du herausgefunden hast, was du bei deinem Ansatz falsch gemacht hast).
JohnR
User
Beiträge: 23
Registriert: Freitag 25. Juni 2010, 19:42

bei dem Programm bin ich halt an den Messenger gebunden, dessen Funktion ich nur für mich mit einer log Datei erweitern möchte weil es mir schon oft vorgekommen ist das mir einer mit dem Spruch gekommen ist

>> das habe ich Dir doch vergangene Woche geschrieben.

und ja das Modul date.time werde ich mir ansehen

Danke erstmal, ich probiere mal weiter :D
Antworten