Używam LoggerAdapter
, aby mój log Pythona generował TIDy linuksowe zamiast długich unikalnych identyfikatorów. Ale w ten sposób nie modyfikować istniejący logger
ale utworzyć nowy obiekt:Elegancki sposób na rejestrowanie.LoggerAdapter dla innych modułów
new_logger = logging.LoggerAdapter(
logger=logging.getLogger('mylogger'),
extra=my_tid_extractor())
Teraz chcę to LoggerAdapter
być wykorzystywane przez niektórych modułów. Dopóki wiem zmienną globalną używany jako rejestrator mogę zrobić coś takiego:
somemodule.logger = new_logger
Ale to nie jest przyjemne - to działa tylko w kilku przypadkach, a trzeba wiedzieć, zmienne rejestratora wykorzystywane przez moduły.
Czy znasz sposób na globalne udostępnienie LoggerAdapter
? dzwoniąc do s.th. jak
logging.setLogger('mylogger', new_logger)
lub alternatywnie: jest jakiś inny sposób, aby pozwolić Python logging
wyjściowe identyfikatory wątku Linux jak wydrukowane przez ps
?
Piękne rozwiązanie. :) Dzięki! – erip