2016-05-31 6 views
1

私は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

関連する問題