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

Python3 RecursionError: maximum recursion depth exceeded

再起処理の自作URLクローラーを夜回したら、朝起きたら落ちていた。   File “/usr/lib/python3.5/threading.py”, line 224, in __init …

no image

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

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

no image

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

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

no image

python3のloggingを呼ぶための自作logger.pyは作るときにハマったこと

python3 の標準ログ出力モジュールであるlogging。 これを自作のlogger.pyにあるgetLoggerから返そうとした。 loggerの取得を共通関数化したかったからです。 すると、メ …

no image

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

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