logger-python
logger-python copied to clipboard
Log API calls with Python
resurfaceio-logger-python
Easily log API requests and responses to your own security data lake.
Contents
- Dependencies
- Installing With pip
- Logging From AIOHTTP
- Logging From Django
- Logging From Flask
- Logging From Requests
- Logging With API
- Protecting User Privacy
Dependencies
Requires Python 3.7 or higher and a requests
HTTP library. No other dependencies to conflict with your app.
Installing With pip
pip3 install --upgrade usagelogger
Logging From AIOHTTP
from aiohttp import web
from usagelogger.middleware.aiohttp import HttpLoggerForAIOHTTP
async def test(request):
return web.Response(text="Hello")
app = web.Application(
middlewares=[
HttpLoggerForAIOHTTP(
url="http://localhost:7701/message", rules="include debug"
)
]
)
app.router.add_get("/", test)
web.run_app(app)
Logging From Django
First edit settings.py
to register middleware, like this:
Note: We recommend placing Resurface middleware at the top in the middleware stack.
MIDDLEWARE = [
"usagelogger.middleware.django.HttpLoggerForDjango", # Always on the top
"django.middleware...",
]
Then add a new section to settings.py
for logging configuration, like this:
USAGELOGGER = {
'url': 'http://localhost:7701/message',
'rules': 'include debug'
}
Logging From Flask
from flask import Flask
from usagelogger.middleware.flask import HttpLoggerForFlask
app = Flask(__name__)
app.wsgi_app = HttpLoggerForFlask( # type: ignore
app=app.wsgi_app, url="http://localhost:7701/message", rules="include debug"
)
@app.route("/")
def home():
return "This route works!"
app.run(debug=True)
Logging From Requests
from usagelogger import resurface
s = resurface.Session(url="http://localhost:7701/message", rules="include debug")
s.get(...)
Logging With API
Loggers can be directly integrated into your application using our API. This requires the most effort compared with the options described above, but also offers the greatest flexibility and control.
API documentation
Protecting User Privacy
Loggers always have an active set of rules that control what data is logged
and how sensitive data is masked. All of the examples above apply a predefined set of rules (include debug
),
but logging rules are easily customized to meet the needs of any application.
© 2016-2024 Graylog, Inc.