我遇到了python日志记录模块的问题。在下面我创建一个"记录器"我稍后将在我的代码中使用它。在这里,我只使用FileHandler,但我看到当我将一些消息记录到此记录器时,它们也出现在控制台上。打印到控制台会使整个程序变慢。
以下是代码:
logger = logging.getLogger("Design")
logger.setLevel(logging.DEBUG)
#create a file handler which logs all INFO, DEBUG, ERROR messages
fh = logging.FileHandler('Design.log', mode='w')
fmt = logging.Formatter('[%(levelname)s] %(message)s')
fh.setFormatter(fmt)
#adding the handlers to logger
logger.addHandler(fh)
答案 0 :(得分:1)
您缺少logger.handlers = []
logger = logging.getLogger("Design")
logger.setLevel(logging.DEBUG)
logger.handlers = []
#create a file handler which logs all INFO, DEBUG, ERROR messages
fh = logging.FileHandler('Design.log', mode='w')
fmt = logging.Formatter('[%(levelname)s] %(message)s')
fh.setFormatter(fmt)
#adding the handlers to logger
logger.addHandler(fh)
如果您之前已设置basicConfig()
logger.propagate = False
答案 1 :(得分:0)
对我造成此错误的是导入语句。
import logging
fh = logging.FileHandler('error.log', mode='w')
logger = getLogger(__name__)
from logging import *
fh = logging.FileHandler('error.log', mode='w')
logger = getLogger(__name__)
并且没有更改我的代码,所以我需要成为
from logging import *
fh = FileHandler('error.log', mode='w')
logger = getLogger(__name__)