6

私のrotatingfilehandlerは3つのバックアップで512バイトに設定されています。ただし、ファイルは回転せず、現在3.9MBです。何が問題になっていますか?私はUbuntu10.10を使用していますが、同じ問題を表示するいくつかのDebianイメージにも同じコードがあるので、それが私のコードに問題があると思います。

[formatters]
keys=simpleFormatter

[loggers]
keys=root,simpleExample

[handlers]
keys=consoleHandler,rfileHandler

[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s 
datefmt= '%Y-%m-%d %H:%M:%S'

[logger_root]
level=INFO
handlers=consoleHandler,rfileHandler,email

[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=simpleFormatter
args=(sys.stdout,)

[handler_rfileHandler]
class=handlers.RotatingFileHandler
backupCount=3
maxBytes=512
formatter=simpleFormatter
level=INFO
args=('/blabla/logs/blabla.log',)

[logger_simpleExample]
level=INFO
handlers=consoleHandler
qualname=simpleExample
propagate=0

[handler_email] 
class=handlers.SMTPHandler 
level=WARNING 
formatter=simpleFormatter 
args=('target url','sendemail',['erich@*****.com'],'EGIM Outstation Logger',('username','pw'))
4

2 に答える 2

4

構成ファイルからも同じ問題が発生しmaxBytesました。backupCount

次のコードは機能しませんでした:

handler  = logging.handlers.RotatingFileHandler(filename    = config.get("Logger", 'file'), 
                                                maxBytes    = config.get("Logger", 'max_file_size'), 
                                                backupCount = config.get("Logger", 'files_to_keep'))

問題はパラメータを取得する方法であることが判明しました。文字列の代わりに整数値を渡す次のコードは、完全に機能します。

handler  = logging.handlers.RotatingFileHandler(filename    = config.get("Logger", 'file'), 
                                                maxBytes    = config.getint("Logger", 'max_file_size'), 
                                                backupCount = config.getint("Logger", 'files_to_keep'))
于 2014-05-07T15:51:39.357 に答える