The log level set by the handler is ERROR, but the warning log is printed.enter image description here
import logging
# root logger
logging.basicConfig(level=logging.DEBUG)
logging.root.addFilter(logging.Filter("root"))
for handler in logging.root.handlers:
handler.setLevel(level=logging.INFO)
handler.addFilter(logging.Filter("myLog"))
# root log
logging.debug("logging debug")
logging.info("logging info")
logging.warning("logging warning")
logging.error("logging error")
logging.critical("logging critical")
# my logger
logger = logging.getLogger("myLog")
logger.setLevel(logging.WARNING)
logger.addFilter(logging.Filter("myLog"))
handler1 = logging.StreamHandler()
handler1.setLevel(logging.ERROR)
handler1.addFilter(logging.Filter("myLog"))
logger.addHandler(handler1)
# my logger log
logger.debug("logger debug")
logger.info("logger info")
logger.warning("logger warning") # why
logger.error("logger error")
logger.critical("logger critical")
I expect to only print logs with ERROR and above.
New contributor
xnningnanjing is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.