49

Windows 7 と Python 2.7 を使用しています。ログ ファイルのサイズを 5MB に制限したいと考えています。私のアプリは、起動時にログファイルに書き込み、その後アプリが終了します。アプリが再起動すると、同じログ ファイルに書き込まれます。そのため、アプリは継続的に実行されていません。アプリが開始、処理、および終了します。

ロギング用の私のコードは次のとおりです。

import logging
import logging.handlers
logging.basicConfig(filename=logfile.log, level="info", format='%(asctime)s %(levelname)s %(funcName)s(%(lineno)d) %(message)s')
logging.info("*************************************************")

RotatingFileHandlerで試しましたが、うまくいきませんでした

logging.handlers.RotatingFileHandler(logFile, mode='a', maxBytes=5*1024*1024, backupCount=2, encoding=None, delay=0)

では、Python でファイル サイズの制限を適用するにはどうすればよいでしょうか。

4

3 に答える 3

80

RotatingFileHandlerをなくしbasicConfig()て使用します。

import logging
from logging.handlers import RotatingFileHandler

log_formatter = logging.Formatter('%(asctime)s %(levelname)s %(funcName)s(%(lineno)d) %(message)s')

logFile = 'C:\\Temp\\log'

my_handler = RotatingFileHandler(logFile, mode='a', maxBytes=5*1024*1024, 
                                 backupCount=2, encoding=None, delay=0)
my_handler.setFormatter(log_formatter)
my_handler.setLevel(logging.INFO)

app_log = logging.getLogger('root')
app_log.setLevel(logging.INFO)

app_log.addHandler(my_handler)

while True:
    app_log.info("data")
于 2014-07-01T08:09:00.453 に答える