[Python] Python logging

Manlio Perillo manlio_perillo a libero.it
Lun 3 Dic 2007 13:01:14 CET


Lawrence Oluyede ha scritto:
>> Tempo fa Michele Simionato aveva postato (non su questa mailing list)
>> questo script:
>>
>> import logging
>> import threading
>>
>> class C(object):
>>      def __init__(self):
>>          print threading.currentThread()
>>
>>      def __del__(self):
>>          print threading.currentThread()
>>          logging.warn('deleted %r' % self)
>>
>> if __name__ == '__main__':
>>      c = C()
>>
>>
>>
>>> $python logbug.py
>>> <_MainThread(MainThread, started)>
>>> <_DummyThread(Dummy-1, started daemon)>
>>> Exception exceptions.AttributeError: "'NoneType' object has no attribute 'warn'" in <bound method C.__del__ of <__main__.C object at 0xb7da310c>> ignored
> 
> Direi che in questo caso e` un non problema pero`... __del__ e` come la peste ;)
> 
> 

Hai ragione, ho ricontrollato lo script e la colpa non è del modulo logging.
Evidentemente quando vengono invocati i distruttori degli oggetti nello 
scope globale, succedono cose strane :)

Se l'istruzione
   c = C()

si mette in una funzione, va tutto bene.

Infine, anche se threading.currentThread() restituisce due valori 
diversi, il thread "fisico" è sempre lo stesso (basta usare 
thread.get_ident).




Manlio Perillo



More information about the Python mailing list