Announcement

Collapse
No announcement yet.

Logging in Bibliotheken - Funktionszeiger auf Klassenmethode

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Logging in Bibliotheken - Funktionszeiger auf Klassenmethode

    So wieder mal ein kleines Schmankerl für Wissende:

    Ich schreibe gerade eine Library die mir meine Datenbankzugriffe kapselt.
    Dabei möchte ich klarerweise nicht auf Debugmeldungen (Logfiles, Bildschirm, etc.) nicht verzichten.

    Da ich kein seperates Logfile für die Lib haben möchte, sondern das Logfile vom Programm (welches die Lib miteingebunden hat) und auch die Formatierung der Logmeldung (z.B.: 2009-06-23 11:02:36: blabla) vom Programm übernehmen möchte, habe ich mir gedacht ich gebe einfach einen Zeiger auf die Logfunktion des Programms in die Bibliothek.

    Problem: Die Funktion zum Loggen ist in einigen bestehenden Programmen eine Klassenmethode.
    Jetzt habe ich in mehreren Testvarianten versucht, einen Zeiger auf die Methode zu übergeben und bin natürlich kläglich gescheitert.
    Kann ja nicht funktionieren, da man zur Berechnung der Einsprungadresse eine Instanz der Klasse benötigt, die ich in der Library nicht kenne :-(

    Zuerst hätte ich mir gedacht, da der Compiler ja Klassenmethoden grob gesagt in "funktion(this,param1,param2)" umwandelt, könnte ich es irgendwie schaffen....

    Stellen sich mir folgende Fragen:
    Wie löse ich dieses Problem am besten?
    Gibt es generelle Ansätze zu Logging in Bibliotheken?
    Kann ich die Logs in stderr schreiben und in den einzelnen Programmen stderr in mein Logfile umleiten?
    Wie würdet ihr das Logging für eine Bibliothek realisieren?

    ps.: achja es ist eine statische Lib!
    mfg Wolfgang
    Zuletzt editiert von HAW; 23.06.2009, 12:03.
Working...
X