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