我试图理解Correct Way™来管理django中的用户访问日志记录。我安装了axes
个中间件,但它似乎只记录失败的尝试。我注意到django.contrib.auth
似乎只在我查看管理界面时存储了最后一次登录。我是否必须编写自己的日志记录视图(如果我希望能够在其上执行有用的数据库操作,则创建自己的访问日志模型?)例如最小示例:
import logging
logger = logging.getLogger(my_user_access_log)
def login_view(request):
#if user is authenticated
logger.info(user.email)
答案 0 :(得分:2)
每当用户登录时,Django都会发出user_logged_in
signal(同样的user_logged_out
和user_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)