Changing logging level only for my code?

Peter Otten __peter__ at web.de
Mon Feb 8 07:12:28 EST 2016


egarrulo at gmail.com wrote:

> I am using the "logging" module for my own package, but changing the level
> from "INFO" to "DEBUG" enables debugging statements from third-party
> libraries as well.  How can I avoid them?  Here is the code I am using:
> 
>     import logging
> 
>     logger = logging.getLogger(__name__)
>     log_file = logging.FileHandler("activity.log", mode='w')
>     log_file.setFormatter(logging.Formatter(fmt='%(levelname)s:
>     %(message)s')) logger.addHandler(log_file)
>     logging.basicConfig(level=logging.INFO) # or DEBUG

You can set the level for your logger, e. g.

$ cat loglevels.py
import logging

logging.basicConfig(
    level=logging.INFO,
    filename="activity.log",
    format='%(levelname)s: %(message)s')

mylogger = logging.getLogger(__name__)
mylogger.setLevel(logging.DEBUG)

mylogger.info("my info")
mylogger.debug("my debug message")

otherlogger = logging.getLogger("some.lib")

otherlogger.info("some.lib info")
otherlogger.debug("some.lib debug message")

$ python3 loglevels.py 
$ cat activity.log 
INFO: my info
DEBUG: my debug message
INFO: some.lib info




More information about the Python-list mailing list