以下のコードを使用して、ロギング モジュールを使用して、エラー メッセージとデバッグ メッセージを個別のログ ファイルに書き込みます。しかし、特定の環境変数が設定されている場合にのみログを記録する必要があります。以下のコードでは、 を設定してロギングをオフにしましたlogger.disabled=True
。ただし、アプリケーションの実行が終了すると、空のログ ファイルが存在することを確認しています。ステートメントを設定した直後にこれらのファイルを削除するチェックを追加しましたlogger.disabled=True
が、ファイルが存在しないと表示されます。これらのファイルはいつ生成されますか - ロガーが無効になっている場合でもスクリプトの実行の最後に、空のファイルの書き込みを防ぐことができますか?
class LevelFilter(logging.Filter):
def __init__(self, level):
self.level = level
def filter(self, record):
return record.levelno == self.level
logger = logging.getLogger("exceptionsLogger")
debugLogFileHandler = logging.FileHandler("Debug.log", mode='w')
errorLogFileHandler = logging.FileHandler("Error.Log", mode='w')
formatter = logging.Formatter('%(message)s')
errorLogFileHandler.setFormatter(formatter)
debugLogFileHandler.setFormatter(formatter)
logger.addHandler(debugLogFileHandler)
logger.addHandler(errorLogFileHandler)
debugLogFileHandler.addFilter(LevelFilter(logging.DEBUG))
errorLogFileHandler.addFilter(LevelFilter(logging.ERROR))
logger.setLevel(logging.DEBUG)
logger.disabled = True