Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python和django日志记录用户与网站的交互_Python_Django_Logging - Fatal编程技术网

使用python和django日志记录用户与网站的交互

使用python和django日志记录用户与网站的交互,python,django,logging,Python,Django,Logging,我目前正在帮助开发一个网站。上周末有人试图入侵该网站,但失败了。然而,由于整个网站在去年夏天被重写,因此在用户放弃之前,没有办法在网站内存储他们的移动并捕获用户的IP 有没有一种方法可以跟踪用户在网站中的行为(例如他们访问了哪些链接),并将其存储到文件中(网站很小),以确保我们有行为记录,如果有人再次尝试攻击它 为了看看我是否能做到这一点,我开始使用日志记录,但遇到了如何准确地用日志记录用户操作的问题。下面是我的设置,它可以工作,我只是不知道用什么来代替logging.info()中当前的字符串

我目前正在帮助开发一个网站。上周末有人试图入侵该网站,但失败了。然而,由于整个网站在去年夏天被重写,因此在用户放弃之前,没有办法在网站内存储他们的移动并捕获用户的IP

有没有一种方法可以跟踪用户在网站中的行为(例如他们访问了哪些链接),并将其存储到文件中(网站很小),以确保我们有行为记录,如果有人再次尝试攻击它

为了看看我是否能做到这一点,我开始使用日志记录,但遇到了如何准确地用日志记录用户操作的问题。下面是我的设置,它可以工作,我只是不知道用什么来代替logging.info()中当前的字符串来记录用户的移动。提前感谢您提供的任何帮助

from ipware.ip import get_ip
import logging

def IPCatcher(request):
    ip = get_ip(request)
if ip is not None:
    print("We have an IP address for user")
    print(ip)
    logging.basicConfig(filename='log_recording.txt',
                        level=logging.DEBUG,format='%(asctime)s %(message)s',
                                                          datefmt='%m/%d/%Y %I:%M:%S %p')
    logging.info('This is working')

else:
    print("we don't have an IP address for user")

登录Django一开始可能会让人望而生畏,但网络上有很多值得一读的内容。为了给您一个概览,最简单的设置方法是从配置日志的
settings.py
文件开始

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/path/to/django/debug.log',
        },
        'mail_admins': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler',
        }
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'my_app': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}
my_app
替换为你的app标签&然后在你看来,日志调用将记录到
文件
处理程序(注意
mail_管理员
处理程序,它将向
settings.admins
发送电子邮件)


我还建议看这篇文章,作为关于这个主题的教程

您使用的是apache还是nginx?出于安全考虑,我现在不使用apache,我正在考虑nginx,但目前两者都不使用。nginx在这种情况下会有帮助吗?非常感谢您的帮助@我还想添加scottyboy,您可以使用类似于apache日志的旋转文件。在这里看一看;
import logging

from ipware.ip import get_ip

# This gets a named logger, which should match your appname
logger = logging.getLogger(__name__)  

def IPCatcher(request):
    ip = get_ip(request)
    if ip is not None:
        logger.info('This is working')