2

私のアプリケーションでは、2 つのボタンを使用します。1 つは RS422 リンク メッセージの記録を開始するためのもので、もう 1 つは記録を停止するためのものです。

初めて、アプリケーションが正しく実行されます: メッセージを含む .txt ファイルの作成。2 回目に 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()

誰かがアイデアを持っていますか?

4

2 に答える 2

2

Logger.removeHandler()メソッドを使用して、そのようなログ記録を停止する場合は、ハンドラーを削除する必要があります。

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

それ以外の場合は、引き続き使用されます。

于 2013-01-25T14:50:07.343 に答える
0

3.2ではわかりませんが、3.6では次のことができます:logger.disabled = True

于 2021-05-19T21:57:17.403 に答える