Pythonでは、ログファイルが一定のサイズに達したときに新しいログファイルを作成することができます。これを「ログローテーション」と呼びます。
Pythonのlogging
モジュールにはRotatingFileHandler
というクラスがあり、これを使用することでログローテーションを実現することができます。
以下に、Pythonでログローテーションを行う基本的なコードを示します。
import logging
import logging.handlers
# ロガーを取得
logger = logging.getLogger(__name__)
# ログ出力レベルの設定
logger.setLevel(logging.DEBUG)
# ローテーションの設定
handler = logging.handlers.RotatingFileHandler(
filename='app.log',
maxBytes=2000,
backupCount=3
)
# ロガーに追加
logger.addHandler(handler)
# ログ出力
for num in range(30):
logger.debug('debug:{}'.format(str(num)))
このコードでは、RotatingFileHandler
を使用してログファイルapp.log
を作成し、そのサイズが2000バイトを超えたときに新しいログファイルを作成します。また、backupCount=3
と設定することで、古いログファイルは最新の3つだけが保存され、それ以前のものは自動的に削除されます。
このように、Pythonのlogging
モジュールを使用することで、ログファイルのサイズに基づいて自動的にログローテーションを行うことができます。