aaugustin / django-userlog Goto Github PK
View Code? Open in Web Editor NEWLogs users' recent browsing history. Helpful for customer support and merciless spying.
License: BSD 3-Clause "New" or "Revised" License
Logs users' recent browsing history. Helpful for customer support and merciless spying.
License: BSD 3-Clause "New" or "Revised" License
Currently userlog only works for logged-in users.
There might be a use case for anonymous users. That would require logging requests by session id (easy) and finding a way to recover the session id (not obvious).
The session id could be obtained by sending the user to a specific view that would store the association between a known value and the session id in Redis.
There are at least two cases where an HTTP request will fail and not be logged:
If the view function hangs or gets killed somehow, possibly because the application server enforces a timeout.
To avoid that problem, I could log requests in process_request
and update the log in process_response
. However that increases the overhead from one to two cache writes per HTTP request for limited benefits.
I don't think userlog should focus on error handling. That's the realm of Sentry.
If response middleware that runs before the userlog middleware raises an exception.
The userlog middleware must run as late as possible because other response middleware may change the response's status code. If an exception happens in an earlier middleware, the only way for userlog to catch it is to connect to the got_request_exception
signal. It's not obvious that this would be a good idea.
I'm willing to accept this as a known limitation and push the responsibility to flaws in the design or the implementation of Django's middleware API.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.