Seite 1 von 1

Logging über Instanz

Verfasst: Sonntag 4. März 2018, 16:23
von Heon
Hallo,

ich habe folgende Konstellation:
Ich habe mir ein Modul A zum Logging geschrieben mit einer Klasse KL_A in diesem Modul, welche das ganze Logging abhandelt.
Parallel habe ich ein andere Modul B mit einer Klasse KL_B , welche verschiedene Funktionalitäten abdeckt (welche jetzt aber bzgl. des Inhalts für die Frage nicht von Bedeutung sind).

Ich möchte nun, dass auch Klasse KL_B in Modul B mit derselben Logging-Instanz arbeitet, wie ich sie in meinem Programm instanziiert habe. Dazu übergebe ich einfach die Logging-Instanz an die Klasse B bei der Instanziierung.

Mein Programm sieht nun so aus:

Code: Alles auswählen

import A
import B

xlog = A.KL_A()
xlog.logausgabe("test") # Testen ob das Logging funktioniert

irgendwas = B.KL_B(xlog)
Ich frage mich aber ob das der Weiheit letzter Schluß ist oder ob es nicht eine elegantere Möglichkeit gibt um sicherzustellen, dass Modulübergreifend immer diesselbe Logging-Instanz verwendet wird.

Danke + grüße

Heon

Re: Logging über Instanz

Verfasst: Sonntag 4. März 2018, 16:36
von __deets__
Das logging System ist schon von alleine so gebaut. Wenn du logging.getLogger(Name) mehrfach aufrufst, bekommst du immer die gleich logger Instanz zurück.

Allerdings klingt dein Vorgehen etwas holperig. Normalerweise holen sich Module ihren jeweils eigenen logger. Konfiguriert wird dann meistens nur der root logger, da alle anderen Logger per default an den durchreichen.

Re: Logging über Instanz

Verfasst: Sonntag 4. März 2018, 18:35
von Sirius3
@Heon: Du solltest Dir kein eigenes Logging-System bauen, da es schon ein fertiges gibt. Für all Deine Fragen gibt es da schon Standardlösungen.