2012-10-18 32 views
9

Tôi hiện đang có chức năng này làm trình ghi nhật ký cơ bản cho ứng dụng Flask của mình. Mặc dù tôi thấy rằng có một Flask.logger object. Làm cách nào để sử dụng trình ghi Flask gốc? Hoặc là những gì tôi đang làm dưới đây tốt?Đơn giản hóa việc đăng nhập Flask

Tôi cũng hơi bối rối về vị trí của các trạng thái ghi nhật ký khác nhau, ví dụ: ghi nhật ký thông tin so với ghi nhật ký lỗi?

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

Trả lời

3

Có lẽ những gì bạn muốn được mô tả như sau.

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

Cài đặt quyền/chủ sở hữu cho tệp nhật ký nên là gì? Tôi đã cố gắng để có được điều này làm việc với uwsgi của tôi nhưng sẽ chỉ làm việc khi nó được cho phép 777. – user805981

Các vấn đề liên quan