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