Josh English wrote: > I have a Python script that imports a utility script. Both scripts use > logging, but the logs don't work as advertised. I'm getting logging output > from the utility script but none from the main file. Worse, the format of > the utility script's logs don't match anything I define. > > The utility script is called xlreader.py. It has the following lines: > > -- begin snippet -- > import logging > XLOGGER = logging.getLogger('XLREADER') > -- end snippet -- > > And it calls XLOGGER.debug(), XLOGGER.error() and XLOGGER.info() but it > never defines a handler. > > > The main script imports xlreader but does not reference XLOGGER. It > defines its own logger: > > -- begin snippet -- > import logging > import xlreader > > LOG = logging.getLogger('SHIPPING') > FORMAT = '%(asctime)-15s %(name)s %(level)-8s %(message)s'
That should be either levelname or levelno in the format string. > logging.basicConfig(format=FORMAT,level=logging.DEBUG) > handler = logging.StreamHandler() > formatter = logging.Formatter(FORMAT) > handler.setFormatter(formatter) > LOG.addHandler(handler) > -- end snippet -- > > I added the logging.basicConfig line but it didn't have any effect. That means there are already handlers configured for the root logger, for example because basicConfig() has been called before. > I > created the second handler separately. > > When I run the scriptI get logging information from only xlreader, not > from the main script: > > DEBUG:XLREADER:Creating Excel Reader > > This format isn't defined anywhere. T > > Even more mysterious, after I run the file (in an IDE so I have a REPL > afterwards), I have: Don't run your code in an IDE. The interaction between your and their code can make debugging harder than necessary. -- https://mail.python.org/mailman/listinfo/python-list