类似的问题是由记录器被调用两次引起的。所以在我的情况下,它可能是由第二个getLogger()
引起的。我有什么想法可以解决它吗?
import logging
import logging.handlers
logger = logging.getLogger("")
logger.setLevel(logging.DEBUG)
handler = logging.handlers.RotatingFileHandler(
"the_log.log", maxBytes=3000000, backupCount=2)
formatter = logging.Formatter(
'[%(asctime)s] {%(filename)s:%(lineno)d} %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
# This is required to print messages to the console as well as the log file.
logging.getLogger().addHandler(logging.StreamHandler())
答案 0 :(得分:1)
使用配置文件。例如logging.config.fileConfig('logging.ini')
[logger_root]
level=ERROR
handlers=stream_handler
[logger_webserver]
level=DEBUG
handlers=stream_handler
qualname=webserver
propagate=0
在配置根记录器和同时使用非root记录器时,必须设置logger.propagate = 0
(Python 3 Docs)。
我知道这是很久以前的问题,但这是DuckDuckGo的最佳结果。