2012-10-10 17 views
5

Dönen dosyalayıcım üç yedekle 512 bayta ayarlandı. Ancak dosya dönmüyor ve şu an 3.9MB'de çalışıyor. Neyi yanlış yapıyorum? Ben Ubuntu 10.10 kullanıyorum, aynı kodu aynı hata görüntüleyen bir çift Debian görüntüde de var.Python Dönen dosya tanıtıcısı dönmüyor

[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',['[email protected]*****.com'],'EGIM Outstation Logger',('username','pw')) 
+0

Bu soruna neden olan minimum kodu/yapılandırmayı bulmayı deneyebilir misiniz? –

+0

handler_rfileHandler bölümünde "mode =" w''yi belirtmeye çalışabilir veya tüm argümanları aynı bölümdeki "args" ile iletebilirsiniz – jfs

cevap

2

Aynı sorun vardı.

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

Sadece maxBytes ve backupCount yanı bir yapılandırma dosyasından geliyor, aynı sorun vardı: ile deneyin.

Aşağıdaki kod işe yaramadı:

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

Sorun parametrelerini elde etmek için bir yol olduğu ortaya çıktı. Dizeler yerine tamsayı değerleri geçen aşağıdaki kod:

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

Tam olarak, bu parametrelerdeki tam sayıları kullanmanız gerekir. – Stan