在python 3.2中启动和停止记录器

时间:2013-01-25 14:38:56

标签: python logging python-3.x

在我的应用程序中,我使用两个按钮:一个用于START记录RS422链接消息,另一个用于STOP记录。

第一次,应用程序正确运行:使用消息创建.txt文件。 第二次,当我点击START按钮时,一个新的。创建了txt文件,但现在,消息正在此文件中记录,但也在第一个.txt文件中记录。

请参阅我的代码:

def start_clic(self):
    logger=logging.getlogger("CFD")
    stringfilename=datetime.now().strftime('log_%Y_%m_%H_%M.txt')
    filehandler=logging.FileHandler(stringfilename)
    formatter=logging.Formatter('%(asctime)s %(message)s')
    logger.addHandler(filehandler)
    logger.setLevel(logging.INFO)

def stop_clic(self):
    logger.setLevel(logging.WARNING)
    filehandler.close()

有人有想法吗?

2 个答案:

答案 0 :(得分:2)

如果您想使用Logger.removeHandler() method停止此类记录,则必须删除处理程序:

def stop_clic(self):
    logger=logging.getlogger("CFD")
    logger.setLevel(logging.WARNING)
    logger.removeHandler(filehandler)
    filehandler.close()

否则它将继续被使用。

答案 1 :(得分:0)

在 3.2 中不确定,但在 3.6 中你可以这样做:logger.disabled = True