Why do all my loggers start auto-disabled?
Peter Otten
__peter__ at web.de
Mon Aug 25 13:08:05 EDT 2008
jonfroehlich wrote:
> 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
I think you have to put the logger into your config file to avoid that it
will be disabled by fileConfig():
> (logconfig.conf):
>
> [formatters]
> keys: detailed,simple
>
> [handlers]
> keys: console,filelog
[loggers]
keys: root, predict
# ...
[logger_predict]
qualname: prediction.predict
handlers:
Peter
More information about the Python-list
mailing list