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

環境構築・Pythonのインストール

おまけ Eclipseのプラグイン PyDevをインストールする マーケットプレースで「python」と検索すると出てくる。 インストールしよう。 インストール完了後、再起動を求められる。 再起動しよ …

no image

【Python クローリング&スクレイピング】を読んで

紀伊国屋で買いました。 カバー外してます。 クローリングフレームワーク lxml Beautiful Soup Scrapy クローリング→データ収集 スクレイピング→収集したものからデータ抽出するこ …

no image

PythonでHello World!

Pythonファイルの拡張子は「.py」 Pythonファイルは「.py」で保存する。 例)helloworld.py 文字出力は print(‘出力する文字’) 例)prin …

no image

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

no image

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

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