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

标签 python logging python-3.x

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

应用程序第一次正确运行:创建包含消息的 .txt 文件。 第二次,当我单击“开始”按钮时,会出现一个新的 .创建了 .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()

有人有想法吗?

最佳答案

如果您想停止这样的日志记录,则必须使用 Logger.removeHandler() method 删除处理程序:

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

否则将继续使用。

关于python - 在 python 3.2 中启动和停止记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14523996/

相关文章:

python - 在 Windows 中使用 python 更改目录创建时间 (ctime)

python - PySide/Qt 导入错误

apache - 重用并添加到 500 错误以从 soap 获得更好的统计数据

python-3.x - 大小不匹配,m1 : [3584 x 28], m2 : [784 x 128] at/pytorch/aten/src/TH/generic/THTensorMath. cpp:940

python - 不同的Sigmoid方程及其实现

python - 如何在 python 2.x 和 3.x 中直接打印到文本文件?

logging - 使 log4j DailyRollingFileAppender 滚动日期或大小,以先到者为准

logging - 微 Controller 上的错误记录

python - 如何确保将数据保存到 csv 时保留逗号?

python - 如何使用 lambda 表达式进行比较?