I am a relative newbie to Python and its logging infrastructure; however, I have programmed extensively with Java/C# and log4j and log4net. That, I suppose, could be the root of my problem :)
I am trying to setup one logger per module (as this is roughly analogous to how I've used log4j/log4net). However, I've noticed that my loggers have the disabled flag set to true (more accurately, 1) when they are initialized. For each logger, do I have to force disabled = False? To make this more concrete, here is an example. In example.py: import logging import logging.config _log = logging.getLogger("prediction.predict") def main(): logging.config.fileConfig('logconfig.conf') _log.warn("test warning!") if __name__ == "__main__": main() Unfortunately, this does not print out "test warning!" and if I put a breakpoint at the _log.warn("test warning!") line, _log.disabled equals 1. If I change main to: def main(): logging.config.fileConfig('predict_logconfig.conf') _log.disabled = False _log.warn("test warning!") It works! So, am I doing something wrong or do I always have to force my loggers to be enabled? Should I update my configuration file so that loggers start as enabled? Here is my config file (logconfig.conf): [formatters] keys: detailed,simple [handlers] keys: console,filelog [loggers] keys: root [formatter_simple] format: %(levelname)s : %(module)s.%(funcName)s (%(lineno)d): % (message)s [formatter_detailed] format: %(asctime)s %(levelname)s : %(module)s.%(funcName)s (% (lineno)d): %(message)s [handler_console] class: StreamHandler args: [] formatter: simple [handler_filelog] class: FileHandler args: ["predictionLog.txt"] formatter: detailed [logger_root] level: INFO handlers: filelog, console -- http://mail.python.org/mailman/listinfo/python-list