5

Python の "logging" モジュールを使用して、エラーをログ ファイルに書き込みたいと考えています。ただし、エラーが発生した場合にのみファイルを作成したいと考えています。次のコードを使用します。

import logging

f = 'test.conf'

logger = logging.getLogger("test_logger")
logger.setLevel(logging.INFO)

ch_file = logging.FileHandler("test_logger.conf")
ch_file.setLevel(logging.ERROR)

logger.addHandler(ch_file)

ch_file.close()

ch = logging.StreamHandler()
ch.setLevel(logging.INFO)

formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")

ch.setFormatter(formatter)


logger.addHandler(ch)

logger.info("info")
logger.warn("warning")
#logger.error("error")

logger.error("error") のコメントを外すと、"test_logger.conf" ファイルが作成され、その中にエラーが含まれているはずです。ただし、この行をコメントアウトすると、test_logger.conf ファイルがまだ作成されていて空であることがわかります。報告するエラーがない限り、このファイルが作成されないようにするにはどうすればよいですか?

ありがとう。

4

1 に答える 1

8

あなたは運がいいです。には、この目的のために設計されFileHandler遅延パラメータがあります。

ch_file = logging.FileHandler("test_logger.conf",delay=True)
于 2010-11-15T00:25:05.557 に答える