Search code examples
loggingmodulepython-2.x

How to implement different levels for specific modules in Python


From this stackoverflow question, how does one implement the following configuration file?

[logger_qpid]
level=NOTSET
handlers=nullHandler
qualname=qpid
propagate=0

I am using logging.basicConfig:

# Configure parser.
parser = argparse.ArgumentParser(description = 'Allow for debug logging mode.')
parser.add_argument('--debug', action = 'store_true',
                    help = 'Outputs additional information to log.')
c_args = parser.parse_args()
# Configure logging mode.
if c_args.debug:
    # Enable debug level of logging.
    print "Logging level set to debug."
    logging.basicConfig(filename = LOG_FILENAME, format = '%(asctime)s %(message)s',
                        level = logging.DEBUG)
else:
    logging.basicConfig(filename = LOG_FILENAME, format = '%(asctime)s %(message)s',
                        level = logging.INFO)

Solution

  • From the suds package's documentation site, you can set the level for a specific package by using the setLevel method. For example, here's how to set the level of all suds logging to INFO level (place after logging.basicConfig() code):

    logging.getLogger('suds').setLevel(logging.INFO)