mirror of
https://github.com/FunnyWolf/agentic-soc-platform.git
synced 2026-08-22 13:12:56 +02:00
Improve production request logging
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import json
|
||||
import logging
|
||||
from uuid import uuid4
|
||||
|
||||
from rest_framework.views import exception_handler
|
||||
|
||||
@@ -50,6 +51,10 @@ def _query_params(request):
|
||||
return _redact({key: values if len(values) != 1 else values[0] for key, values in request.GET.lists()})
|
||||
|
||||
|
||||
def _request_id(request):
|
||||
return request.headers.get("X-Request-ID") or f"req_{uuid4().hex}"
|
||||
|
||||
|
||||
def _user_context(request):
|
||||
user = getattr(request, "user", None)
|
||||
if not user or not getattr(user, "is_authenticated", False):
|
||||
@@ -71,6 +76,7 @@ def _event(exc, context, response=None):
|
||||
request = context.get("request")
|
||||
response_data = _serializable(getattr(response, "data", None)) if response is not None else None
|
||||
return {
|
||||
"request_id": _request_id(request) if request is not None else "",
|
||||
"method": getattr(request, "method", ""),
|
||||
"path": getattr(request, "path", ""),
|
||||
"query_params": _query_params(request) if request is not None else {},
|
||||
|
||||
@@ -93,9 +93,11 @@ After changing only script or YAML definitions, use **System Settings > Runtime
|
||||
|
||||
## Logs
|
||||
|
||||
Backend process logs are mounted to `./logs`:
|
||||
Nginx and backend process logs are mounted to `./logs`:
|
||||
|
||||
```text
|
||||
logs/nginx/access.log
|
||||
logs/nginx/error.log
|
||||
logs/django.log
|
||||
logs/asgi.log
|
||||
logs/agentic-module-worker.log
|
||||
|
||||
@@ -93,9 +93,11 @@ ASP_RUSTFS_CONSOLE_PORT=9001
|
||||
|
||||
## 日志
|
||||
|
||||
后端进程日志会挂载到 `./logs`:
|
||||
Nginx 和后端进程日志会挂载到 `./logs`:
|
||||
|
||||
```text
|
||||
logs/nginx/access.log
|
||||
logs/nginx/error.log
|
||||
logs/django.log
|
||||
logs/asgi.log
|
||||
logs/agentic-module-worker.log
|
||||
|
||||
@@ -29,6 +29,7 @@ services:
|
||||
volumes:
|
||||
- static-files:/usr/share/nginx/backend-static:ro
|
||||
- ./certs:/etc/nginx/certs
|
||||
- ./logs/nginx:/var/log/asp/nginx
|
||||
depends_on:
|
||||
asp-web:
|
||||
condition: service_healthy
|
||||
|
||||
@@ -1,7 +1,17 @@
|
||||
log_format asp_main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||
'$status $body_bytes_sent "$http_referer" "$http_user_agent" '
|
||||
'request_id=$request_id request_time=$request_time '
|
||||
'upstream_addr="$upstream_addr" upstream_status="$upstream_status" '
|
||||
'upstream_response_time="$upstream_response_time"';
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
http2 on;
|
||||
server_name _;
|
||||
access_log /var/log/nginx/access.log asp_main;
|
||||
access_log /var/log/asp/nginx/access.log asp_main;
|
||||
error_log /var/log/nginx/error.log warn;
|
||||
error_log /var/log/asp/nginx/error.log warn;
|
||||
|
||||
ssl_certificate /etc/nginx/certs/asp.crt;
|
||||
ssl_certificate_key /etc/nginx/certs/asp.key;
|
||||
@@ -21,6 +31,7 @@ server {
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Request-ID $request_id;
|
||||
proxy_buffering off;
|
||||
}
|
||||
|
||||
@@ -30,6 +41,7 @@ server {
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Request-ID $request_id;
|
||||
}
|
||||
|
||||
location /admin/ {
|
||||
@@ -38,6 +50,7 @@ server {
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Request-ID $request_id;
|
||||
}
|
||||
|
||||
location /static/ {
|
||||
|
||||
Reference in New Issue
Block a user