ile kullanırken rollover'ı zorla Python uygulama günlüğü iletilerimi bir dosyaya kaydetmek için ConcurrentLogHandler kullanıyorum. Tornado'nun HTTPServer, sunucu olarak üretimde kullanılır ve belirli bir durumda (kullanıcı formu gönderilir), dosyanın üzerine ruloyu zorlamak isterim. Kullanmakta olduğum sorun, logger.handlers [0] .doRollover() çalıştırırken, roll over gerçekleşmiyor ve ben de bir hata göremiyorum. uygulamalarımaPython ConcurrentLogHandler: Tornado HttpServer
Birçok modülleri günlüğüne yazmak için aşağıdaki modülünden "logger" nesne içe:
import logging
import logging.handlers
from cloghandler import ConcurrentRotatingFileHandler
from my_app import app
logger = logging.getLogger('my_app')
hdlr = ConcurrentRotatingFileHandler(app.config['LOG_PATH'], maxBytes=5e+8, backupCount=10)
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.INFO)
[a logger.handlers ben RotatingFileHandler kullanıyordum, ConcurrentLogHandler kullanma ve gerçekleştirmeden önce 0] .doRollover(), yığının aşağısındaki os.rename üzerinde tetiklenen "Dosya meşgul" hatasıyla sonuçlanır.
Bu kurulumla bir rollover'ı zorlayabilmemin bir yolu var mı, yoksa bunu mümkün kılmak için yapmam gereken değişiklikler var mı? Centos'u bir sunucu olarak kullanıyorum, bu yüzden dosya sistemi UNIX/Linux. Uygulamam çalışırken her zaman günlük dosyasında bir [dosyaadı] .lock dosyası görebiliyorum.