2012-10-18 24 views
9

Şu anda bunu Flask uygulamam için temel kaydedicim olarak kullanıyorum. Gördüğüm kadarıyla bir Flask.logger object var. Doğal Flask logger'ı nasıl kullanırım? Ya da aşağıda gayet iyi yapıyorum?Flask'ta günlüğe kaydetme basitleştirme

Ayrıca, farklı günlük durumlarının nereye gideceği konusunda biraz kafam karışmışım, örneğin günlüğe kaydetme işlemine kadar günlüğe kaydetme?

LOG_FILENAME = 'app_access_logs.log' 

info_log = logging.getLogger('app_info_log') 
info_log.setLevel(logging.INFO) 

handler = logging.handlers.RotatingFileHandler(
    LOG_FILENAME, 
    maxBytes=1024 * 1024 * 100, 
    backupCount=20 
    ) 

info_log.addHandler(handler) 

... 

@app.before_request 
def pre_request_logging(): 
    #Logging statement 
    if 'text/html' in request.headers['Accept']: 
     info_log.info('\t'.join([ 
      datetime.datetime.today().ctime(), 
      request.remote_addr, 
      request.method, 
      request.url, 
      request.data, 
      ', '.join([': '.join(x) for x in request.headers])]) 
     ) 

cevap

3

Muhtemelen istediğinizi aşağıdaki gibi açıklanmaktadır.

LOG_FILENAME = 'app_access_logs.log' 

app.logger.setLevel(logging.INFO) # use the native logger of flask 

handler = logging.handlers.RotatingFileHandler(
    LOG_FILENAME, 
    maxBytes=1024 * 1024 * 100, 
    backupCount=20 
    ) 

app.logger.addHandler(handler) 

... 

@app.before_request 
def pre_request_logging(): 
    #Logging statement 
    if 'text/html' in request.headers['Accept']: 
     app.logger.info('\t'.join([ 
      datetime.datetime.today().ctime(), 
      request.remote_addr, 
      request.method, 
      request.url, 
      request.data, 
      ', '.join([': '.join(x) for x in request.headers])]) 
     ) 
+0

Günlük dosyasının izin/sahip ayarları ne olmalıdır? Bunun uwsgi ile çalışmasını sağlamaya çalışıyorum ama sadece 777 izni için çalışacak. – user805981

İlgili konular