2016-05-31 79 views
1

我想了解正確的Way™管理用戶訪問日誌記錄在Django中。我安裝了中間件axes,但它似乎只記錄失敗的嘗試。我注意到django.contrib.auth似乎只在我查看管理界面時才存儲上次登錄。我必須寫我自己的日誌記錄視圖(和創建自己的訪問日誌模型,如果我希望能夠做就可以了有用databasey的東西?)如小例子:django中的用戶訪問日誌記錄

import logging 
logger = logging.getLogger(my_user_access_log) 
def login_view(request): 
    #if user is authenticated 
    logger.info(user.email) 

回答

2

的Django發出user_logged_in signal每當用戶登錄(也類似於user_logged_outuser_login_failed信號)。你可以附加一個聽衆的信號,然後做你自己的簡單的日誌記錄:

import logging 

from django.contrib.auth.signals import user_logged_in 
from django.dispatch import receiver 

logger = logging.getLogger(__name__) 

@receiver(user_logged_in) 
def login_logger(sender, request, user): 
    # Do whatever you want here with the information 
    logger.info(user.email) 
+0

感謝您的信號說明。最後,我決定我需要更多的數據,並在數據庫中添加另一個表。 – Escher