Python

Python3 RotatingFileHandlerでログファイルサイズを抑えて世代管理

投稿日:2017年11月16日 更新日:

RotatingFileHandlerは何世代までローテーションできる?

RotatingFileHandlerは何世代でもローテ―ションできるようです。

args=("log/app.log", 'a', (1*1024*1024), 888888)

こんな風に、5以上の数字を設定しても、ローテーションしてくれます。

実装例

approot/test.py

import logging
import logging.config

LOGGING_CONF = 'conf/log.conf' # 今回使用する設定ファイルパスを指定します。 #アプリのルートから見たパスを指定すること
logging.config.fileConfig(LOGGING_CONF) # 設定ファイルをセットします。
logger = logging.getLogger("root") # ロガーのkeyをrootにします。

for i in range(999):
logger.info(str(i) + "です") # infoレベルのログ出力を行います。

 

approot/conf/log.conf

[loggers]
keys=root

[handlers]
keys=basicHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=DEBUG
handlers=basicHandler

[handler_basicHandler]
class=handlers.RotatingFileHandler
level=DEBUG
formatter=simpleFormatter
args=("log/app.log", 'a', (1*1024*1024), 888888)

[formatter_simpleFormatter]
format=%(asctime)s - %(name)s %(levelname)-7s %(message)s

 

公式ドキュメント

https://docs.python.jp/3/library/logging.handlers.html#logging.handlers.RotatingFileHandler

実行コマンド

(python) approot$ python src/test.py

loggingのヒント

https://docs.python.jp/3/howto/logging.html
上記が為になる。

loggerの名前は何にする?

logger.getLogger(__name__)

ロガー名だけで、どこでイベントのログが取られたか、直感的に明らかになります。

-Python

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Ubuntu 16.04で pycharm でPython2 開発環境構築

no image

PythonでWebサイトをクローリング・スクレイピングの実践

 各モジュールの公式ドキュメント モジュール バージョン ドキュメントURL 言語 Python 3 https://docs.python.jp/3/index.html 日本語 urllib ht …

no image

取得可能ドメイン・ドメイン取得可否のrequests.response.http_status_code

取得可能なドメインは2種類ある。 期限切れのドメイン(中古ドメイン) 全く新規のドメイン それぞれ、どのようなrequests.response.http_status_codeを返すのだろうか。下記 …

no image

URLの構造

http://hoge.sample.com/category/diet?q=drink#ojousama スキーム scheme httpやhttpsのようにプロトコルを表す オーソリティ auth …

no image

Ubuntu 16.04にPyCharm 2017.2.4をインストールする

PyCharm 2017.2.4をダウンロードする http://www.jetbrains.com/pycharm/download/download-thanks.html?platform=li …