Le 25/09/12 19:47, Jean-Michel Pichavant a écrit :
> ----- Original Message -----
>> In my application I import a module and I want to set the same
>> logging
>> level
>> as the main app to this module.
>>
>> I've tried this code
>>
>> main.py
>>
>> import logging
>> logger = logging.getLogger(__name__)
>> lvl = logging.DEBUG
>> LOG_FORMAT = "%(asctime)-6s %(levelname)s: %(name)s - %(message)s"
>> logging.basicConfig(format=LOG_FORMAT, datefmt='%H:%M:%S', level=lvl)
>>
>> from mymodule.myfile import MyClass
>>
>> ...
>>     def load_myclass(self):
>>         lvl = logger.getEffectiveLevel()
>>         mc = MyClass(self, lvl)
>>
>>
>> myfile.py
>>
>> import logging
>> logger = logging.getLogger(__name__)
>>
>> class MyClass(object):
>>     def __init__(self, main, lvl):
>>         logger.setLevel(lvl)
>>
>> If I set the level to logging.DEBUG I can see all infos from the main
>> but anything
>> from my module.
>>
>> Thanks for your advice.
>> --
>> Vincent V.V.
>> Oqapy <https://launchpad.net/oqapy> . Qarte
>> <https://launchpad.net/qarte> . PaQager
>> <https://launchpad.net/paqager>
>> --
>> http://mail.python.org/mailman/listinfo/python-list
>>
> Life is actually simpler, one rule to remember: you don't configure your 
> loggers, ever. You let this worthless task to the user (in your case the 
> main.py file or however import your module).
>
> In myfile.py, the only logging related lines are:
>
> import logging
> logger = logging.getLogger(__name_)
>
> Then you just log. How the logs  are processed, at which level, for which 
> formatter, you don't care. The root logger will take care of that. Keep your 
> main.py as it is and it should work.
>
> JM
>
>
Oops, my fault, I've forgotten a line "logger.setLevel(logging.WARNING)"
into my module.

Thanks
-- 
Vincent V.V.
Oqapy <https://launchpad.net/oqapy> . Qarte
<https://launchpad.net/qarte> . PaQager <https://launchpad.net/paqager>
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to