[python] logging -- matouci chovani

Vladimir Macek macek na sandbox.cz
Středa Únor 18 00:29:22 CET 2015


Zdar,

mozna jste uz taky meli co do cineni s pythonskou hydrou zvanou logging ze
stdlib. A mozna jste jako ja narazili na chovani, ktere jste necekali a
pripadalo vam, ze jste blbi. Tyka se i Pythonu samotneho a tak posilam i do
jeho konference.

Kdyz jsem si chtel nastavit logovani v djangovskem projektu tak, ze ze
vsech loggeru vsech urovni chci videt hlasky v konzoli, zjistil jsem, ze to
nejde, i kdyz jsem mel nastaveno disable_existing_loggers na True.
Dokumentace logging modulu tvrdi, ze v takovem pripade budou existujici
loggery vypnuty.

Jenze se ukazuje, ze i kdyz je logger vypnuty, neukonci se aplikovani jeho
nastaveni propagate=False. Takze i vypnuty logger vesele blokuje putovani
logovane hlasi k root loggeru, ktery jste s nadeji na jednoduchou
konfiguraci nasmerovali do konzole... A to je pripade loggeru
django.request a django.security, ktere Django implicitne definuje.

Reportoval jsem jako bug, protoze podle me Django doc je v tomto silne
zavadejici:

https://code.djangoproject.com/ticket/24361

Jsou tam i odkazy na stranky, kde se to podrobneji vysvetluje a navrhuje
reseni s opravdovym resetem loggingu.

Snad to nekomu zachrani hodinu. :-)

-- 
:  Vladimir Macek  :  http://macek.sandbox.cz  :  +420 608 978 164
:  UNIX && Dev || Training  :  Python, Django  :  PGP key 97330EBD




Další informace o konferenci Python