In Python 2.4 und höher ist es einfach, das Logging-Modul so zu konfigurieren, dass es eine einfachere Formatierung hat:
logging.basicConfig(level=opts.LOGLEVEL, format="%(message)s")
aber für Anwendungen, die Python 2.3 unterstützen müssen, scheint es schwieriger zu sein, da die Logging-API in Py2.4 überarbeitet wurde. Insbesondere nimmt basicConfig keine Argumente entgegen. Wenn ich eine Variation des einzigen Beispiels in der Py2.3-Dokumentation ausprobiere, erhalte ich folgendes:
try:
logging.basicConfig(level=opts.LOGLEVEL, format="%(message)s")
except:
logging.getLogger().setLevel(opts.LOGLEVEL)
h = logging.StreamHandler()
h.setFormatter(logging.Formatter("%(message)s"))
logging.getLogger().addHandler(h)
aber der Aufruf dieses Root-Loggers in Py2.3, z.B.
logging.info("Foo")
ergibt eine doppelte Ausgabe:
Foo
INFO:root:Foo
Ich kann nicht finden, eine Möglichkeit, das Format der vorhandenen Handler auf der Root-Logger in Py2.3 (der "außer" Block oben) zu ändern, daher der "addHandler" Aufruf, die die doppelte Ausgabe produziert. Gibt es eine Möglichkeit, das Format der Root-Logger ohne diese Verdoppelung zu setzen? Vielen Dank!