Hallo !
Habe beschlossen log4cpp in mein Projekt einzubauen. Nach einem Beispiel
in dem ich mir mal alle Funktionen sowie den Aufbau angeschaut habe bin
ich jetzt dabei das ganze in mein laufendes Projekt nachzuziehen. Eine
etwas offene Fraeg die sich mir gestellt hat war wie kriege ich meinen
konfigurierten logger in die anderen erstellten klassen rein.
Gelöst habe ich das so indem ich eine private Variable in der klasse
angelegt habe und dann mittel Initialisierungsliste und getInstance das
ganze abgeholt habe.->
1 | private:
|
2 | log4cpp::Category& LidDataQueuesLogger; /**< Logging */
|
und
1 | LIdQueues::LIdQueues(int action) : LidDataQueuesLogger(log4cpp::Category::getInstance("Lid Data Queues Category") )
|
somit habe ich eine Referenz auf die Kategorie in der ganzen Klasse zur
verfügung.
Frage 1 darf man das so machen bzw. macht man das so.
Wie gesagt in meiner Bsp Applikation hat alles wunderbar funktioniert.
Jedoch bekomme ich jetzt bei meiner Implementierung einen segmentation
fault am Ende. Ich vermut dass irgendwas an den loggern nicht passt (Es
sind mehrere Kategorien mit verschiedensten Appenden). Es kommt aber
alles bis zum letzten log Eintrag richtig in die Files und auf die
Console. Der seg fault tritt also beim beenden auf. Frage2: Wie muss ich
den die Referenzen in meinen Klassen (bzw. die Categirien) richtig
beenden (flushen und schließen - sodass auch die laufenden threads
beendet werden)?
bringt leider nicht das gewünschte Ergebnis.
Hoffe es kann mir jemand etwas weiterhelfen. Sollte etwas nicht
verständlich sein einfach nochmal nachfragen.
Grüße Michi