1. ホーム
  2. python

[解決済み] TimedRotatingFileHandler ファイル名を変更しますか?

2022-02-10 05:48:49

質問

Pythonのロギングハンドラを実装しようとしています。 TimedRotatingFileHandler .

真夜中にロールオーバーすると、現在の日が追加されます。 YYYY-MM-DD .

LOGGING_MSG_FORMAT  = '%(name)-14s > [%(levelname)s] [%(asctime)s] : %(message)s'
LOGGING_DATE_FORMAT = '%Y-%m-%d %H:%M:%S'

logging.basicConfig(
            level=logging.DEBUG,
            format=LOGGING_MSG_FORMAT,
            datefmt=LOGGING_DATE_FORMAT
            )
root_logger = logging.getLogger('')
logger = logging.handlers.TimedRotatingFileHandler("C:\\logs\\Rotate_Test",'midnight',1)
root_logger.addHandler(logger)
while True:
    daemon_logger = logging.getLogger('TEST')
    daemon_logger.info("SDFKLDSKLFFJKLSDD")
    time.sleep(60)

最初に作成されるログファイルの名前は Rotate_Test そして、次の日にロールオーバーすると、ファイル名を次のように変更します。 Rotate_Test.YYYY-MM-DD ここで YYYY-MM-DD は現在の日です。

ファイル名を変更する方法を教えてください。

解決方法は?

ファイル名を変更する方法を教えてください。

ドキュメントがないので、ソースを読むことにしました。 のソースを読んでの結論は、以下の通りです。 logging/handlers.py

handler = logging.handlers.TimedRotatingFileHandler("C:\\isis_ops\\logs\\Rotate_Test",'midnight',1)
handler.suffix = "%Y-%m-%d" # or anything else that strftime will allow
root_logger.addHandler(handler)

サフィックスは書式設定文字列です。