python - 如何在日志处理程序中控制请求对象
问题描述
嗨,我在 django 中制作了一个日志记录模块
我想将所有用户活动保存在class Log
模型中
这是日志模型
class Log(models.Model):
user = models.ForeignKey("user")
ip_address = models.Charfield()
visited_view = models.Charfield()
例如,当 user(testman) 访问 PostCreateView 时,Log 对象将创建
("testman", '[user_ip_address]', 'visited_view')
这是我的settings.py
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'db_logger': {
'class': 'myapp.utils.logging.LogHandler',
},
},
'loggers': {
'request': {
'handlers': ['db_logger'],
'level': 'INFO',
}
},
}
db_logger 将使用 My Custom LogHandler
from myapp.models import Log
class LogHandler(logging.Handler):
def emit(self, record):
if record.name.split('.')[0]=='request':
user = recored.request.user ## This is what i want :)
Log.objects.create()
并在 CreateView 中插入日志记录命令
my_logger = logging.getLogger('db_logger')
class PostCreateView(CreateView):
def get_context_data(self, request, *args, **kwargs):
my_logger.warning('test')
但我现在有大问题,因为logging.Handler
python lib 不是 django 所以我无法控制请求LogHandler
:(
如何在 Handler 中控制请求对象?谢谢你 :)
解决方案
推荐阅读
- raspbian - Raspberry 没有互联网,但已连接到我的路由器
- nginx - nginx位置匹配规则,不匹配尾随字符
- javascript - 以前我从谷歌驱动器渲染图像现在我需要从本地路径渲染它。如何在 Reactjs 的 const 变量中渲染图像?
- javascript - 如何测试 componentDidMount 有条件地进行 API 调用
- java - Java JDB:错误:传输错误 202:gethostbyname:未知主机
- powershell - 使用 PowerShell 执行从 HTTP 服务器下载的二进制文件失败并显示“文件或目录已损坏且无法读取”
- image - 服务器上的图像 URL 路径未在普通窗口中呈现,但在隐身模式中是
- android - 通过 Xamarin Forms WebView 访问相机
- swift - UICollectionView 的 prefetchItemsAt 没有被调用
- javascript - Digitalocean:Rails 不会在生产模式下加载资产