2012-10-18 33 views
9

我目前已將此作爲我的Flask應用程序的基本日誌記錄器。雖然我看到有一個Flask.logger object。我如何使用本地Flask記錄器?或者我在下面做得很好?在Flask中簡化日誌記錄

對於不同的日誌狀態去哪裏,例如登錄到信息和記錄錯誤,我也有點困惑?

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])]) 
     ) 

回答

3

可能你想要的是如下描述。

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

什麼應該是日誌文件的權限/所有者設置?我一直試圖使用我的uwsgi工作,但只有在獲得777權限時才能正常工作。 – user805981