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 json
|
||||||
import logging
|
import logging
|
||||||
|
from uuid import uuid4
|
||||||
|
|
||||||
from rest_framework.views import exception_handler
|
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()})
|
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):
|
def _user_context(request):
|
||||||
user = getattr(request, "user", None)
|
user = getattr(request, "user", None)
|
||||||
if not user or not getattr(user, "is_authenticated", False):
|
if not user or not getattr(user, "is_authenticated", False):
|
||||||
@@ -71,6 +76,7 @@ def _event(exc, context, response=None):
|
|||||||
request = context.get("request")
|
request = context.get("request")
|
||||||
response_data = _serializable(getattr(response, "data", None)) if response is not None else None
|
response_data = _serializable(getattr(response, "data", None)) if response is not None else None
|
||||||
return {
|
return {
|
||||||
|
"request_id": _request_id(request) if request is not None else "",
|
||||||
"method": getattr(request, "method", ""),
|
"method": getattr(request, "method", ""),
|
||||||
"path": getattr(request, "path", ""),
|
"path": getattr(request, "path", ""),
|
||||||
"query_params": _query_params(request) if request is not None else {},
|
"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
|
## Logs
|
||||||
|
|
||||||
Backend process logs are mounted to `./logs`:
|
Nginx and backend process logs are mounted to `./logs`:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
|
logs/nginx/access.log
|
||||||
|
logs/nginx/error.log
|
||||||
logs/django.log
|
logs/django.log
|
||||||
logs/asgi.log
|
logs/asgi.log
|
||||||
logs/agentic-module-worker.log
|
logs/agentic-module-worker.log
|
||||||
|
|||||||
@@ -93,9 +93,11 @@ ASP_RUSTFS_CONSOLE_PORT=9001
|
|||||||
|
|
||||||
## 日志
|
## 日志
|
||||||
|
|
||||||
后端进程日志会挂载到 `./logs`:
|
Nginx 和后端进程日志会挂载到 `./logs`:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
|
logs/nginx/access.log
|
||||||
|
logs/nginx/error.log
|
||||||
logs/django.log
|
logs/django.log
|
||||||
logs/asgi.log
|
logs/asgi.log
|
||||||
logs/agentic-module-worker.log
|
logs/agentic-module-worker.log
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- static-files:/usr/share/nginx/backend-static:ro
|
- static-files:/usr/share/nginx/backend-static:ro
|
||||||
- ./certs:/etc/nginx/certs
|
- ./certs:/etc/nginx/certs
|
||||||
|
- ./logs/nginx:/var/log/asp/nginx
|
||||||
depends_on:
|
depends_on:
|
||||||
asp-web:
|
asp-web:
|
||||||
condition: service_healthy
|
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 {
|
server {
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
http2 on;
|
http2 on;
|
||||||
server_name _;
|
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 /etc/nginx/certs/asp.crt;
|
||||||
ssl_certificate_key /etc/nginx/certs/asp.key;
|
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-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
proxy_set_header X-Request-ID $request_id;
|
||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,6 +41,7 @@ server {
|
|||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
proxy_set_header X-Request-ID $request_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /admin/ {
|
location /admin/ {
|
||||||
@@ -38,6 +50,7 @@ server {
|
|||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
proxy_set_header X-Request-ID $request_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /static/ {
|
location /static/ {
|
||||||
|
|||||||
Reference in New Issue
Block a user