Eigene Zeit beim Logging

30/09/2010 - 10:10 von Ole Streicher | Report spam
Hallo,

nachdem sich das "Abfangen" von C-Logfunktionen als unerwartet komplex
herausgestellt hat, verfolge ich jetzt einen anderen Ansatz: Lesen des
generierten Logfiles und Konvertierung in Python-"logging"-Ereignisse.

Dabei habe ich jetzt das Problem, dass natürlich der orginale Timestamp
erhalten bleiben sollte. Aber irgendwie kann ich der Dokumentation zu
"logging" nicht entnehmen, wie ich Ereignisse mit einem expliziten
Zeitstempel setzen kann:

-8<--
import logging
LOG_FILENAME = 'example.log'
logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG)

for line in file('c_example.log'):
timestamp, level, message = parse_logline(line)
logging.log(level, message, time=timestamp)
-8<--

scheitert leider am fehlenden Parameter "timestamp" des
Logging-Facilities. Wie bekomme ich nun die Zeit dahinein?

Viele Grüße

Ole
 

Lesen sie die antworten

#1 deets
30/09/2010 - 10:55 | Warnen spam
Ole Streicher writes:

Hallo,

nachdem sich das "Abfangen" von C-Logfunktionen als unerwartet komplex
herausgestellt hat, verfolge ich jetzt einen anderen Ansatz: Lesen des
generierten Logfiles und Konvertierung in Python-"logging"-Ereignisse.

Dabei habe ich jetzt das Problem, dass natürlich der orginale Timestamp
erhalten bleiben sollte. Aber irgendwie kann ich der Dokumentation zu
"logging" nicht entnehmen, wie ich Ereignisse mit einem expliziten
Zeitstempel setzen kann:

-8<--
import logging
LOG_FILENAME = 'example.log'
logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG)

for line in file('c_example.log'):
timestamp, level, message = parse_logline(line)
logging.log(level, message, time=timestamp)
-8<--

scheitert leider am fehlenden Parameter "timestamp" des
Logging-Facilities. Wie bekomme ich nun die Zeit dahinein?



Genauer lesen. Du kannst das Format der Logmessage bestimmen, und den
"eingebauten" timestamp entfernen, indem du den key "asctime" nicht verwendest.

Gleichzeitig kannst du natuerlich beliebige Nachrichten - inklusive des
eingelesenen Zeitstempels - rausschreiben.

Es gibt sicher noch andere moeglichkeiten, zB spezielle Logger die den
Zeitstempel des Log-records umbiegen, aber das halte ich alles fuer ueberkandidelt.

Diez

Ähnliche fragen