Python ログの時間形式をカスタマイズするにはどうすればいいですか? 質問する

Python ログの時間形式をカスタマイズするにはどうすればいいですか? 質問する

私は Python のロギング パッケージを初めて使用しており、プロジェクトで使用する予定です。時間形式を好みに合わせてカスタマイズしたいと思います。チュートリアルからコピーした短いコードを以下に示します。

import logging

# create logger
logger = logging.getLogger("logging_tryout2")
logger.setLevel(logging.DEBUG)

# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)

# create formatter
formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(message)s")

# add formatter to ch
ch.setFormatter(formatter)

# add ch to logger
logger.addHandler(ch)

# "application" code
logger.debug("debug message")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
logger.critical("critical message")

出力は次のようになります。

2010-07-10 10:46:28,811;DEBUG;debug message
2010-07-10 10:46:28,812;INFO;info message
2010-07-10 10:46:28,812;WARNING;warn message
2010-07-10 10:46:28,812;ERROR;error message
2010-07-10 10:46:28,813;CRITICAL;critical message

2010-07-10 10:46:28時間の形式を、ミリ秒の接尾辞を削除して、「 」だけに短縮したいと思います。Formatter.formatTime を確認しましたが、混乱しています。

ベストアンサー1

から公式文書Formatter クラスに関して:

コンストラクターは、メッセージ形式文字列と日付形式文字列の 2 つのオプション引数を取ります。

だから変えよう

# create formatter
formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(message)s")

# create formatter
formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(message)s",
                              "%Y-%m-%d %H:%M:%S")

おすすめ記事