Compare commits
2 Commits
3c7d47782b
...
aed8661331
| Author | SHA1 | Date | |
|---|---|---|---|
| aed8661331 | |||
|
|
e908125d31 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -13,6 +13,8 @@ local_postgres_data/
|
|||||||
# Carpeta de datos (BD SQLite y similares), pero se mantiene la carpeta
|
# Carpeta de datos (BD SQLite y similares), pero se mantiene la carpeta
|
||||||
data/*
|
data/*
|
||||||
!data/.gitkeep
|
!data/.gitkeep
|
||||||
|
app/data/*
|
||||||
|
!app/data/.gitkeep
|
||||||
*.pyc
|
*.pyc
|
||||||
# Bloquear todos los .env en cualquier carpeta
|
# Bloquear todos los .env en cualquier carpeta
|
||||||
.env
|
.env
|
||||||
|
|||||||
0
app/data/.gitkeep
Normal file
0
app/data/.gitkeep
Normal file
@@ -1,7 +1,9 @@
|
|||||||
from backend_admin.models import Log
|
import logging
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from . import utils
|
from . import utils
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class LogService:
|
class LogService:
|
||||||
"""
|
"""
|
||||||
@@ -11,6 +13,9 @@ class LogService:
|
|||||||
Uso en vistas:
|
Uso en vistas:
|
||||||
log_id = LogService.gestionar_log(self, request, path='/mi/path/')
|
log_id = LogService.gestionar_log(self, request, path='/mi/path/')
|
||||||
LogService.gestionar_log(self, request, log_id=log_id, body_request=data, status_code=200)
|
LogService.gestionar_log(self, request, log_id=log_id, body_request=data, status_code=200)
|
||||||
|
|
||||||
|
Si la BD no está disponible, el log falla silenciosamente para no
|
||||||
|
interrumpir la petición del usuario.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def gestionar_log(
|
def gestionar_log(
|
||||||
@@ -23,8 +28,21 @@ class LogService:
|
|||||||
body_response=None,
|
body_response=None,
|
||||||
status_code=None,
|
status_code=None,
|
||||||
):
|
):
|
||||||
# Determinar la app que llama a partir del módulo de la vista
|
try:
|
||||||
modulo = self.__class__.__module__
|
return LogService._ejecutar_log(
|
||||||
|
self, request, log_id, path, user, body_request, body_response, status_code
|
||||||
|
)
|
||||||
|
except Exception as e:
|
||||||
|
logger.warning('LogService.gestionar_log falló (log omitido): %s', str(e))
|
||||||
|
return log_id # Devuelve el log_id existente o None si era creación
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _ejecutar_log(caller, request, log_id, path, user, body_request, body_response, status_code):
|
||||||
|
# Importación aquí para evitar problemas de arranque si la BD no está lista
|
||||||
|
from backend_admin.models import Log
|
||||||
|
|
||||||
|
# Determinar la app llamante a partir del módulo de la vista
|
||||||
|
modulo = caller.__class__.__module__
|
||||||
app_nombre = modulo.split('.')[0]
|
app_nombre = modulo.split('.')[0]
|
||||||
|
|
||||||
tag_header = request.headers.get('tag')
|
tag_header = request.headers.get('tag')
|
||||||
@@ -44,20 +62,18 @@ class LogService:
|
|||||||
# --- CREACIÓN: primer registro del ciclo de vida de la petición ---
|
# --- CREACIÓN: primer registro del ciclo de vida de la petición ---
|
||||||
path_final = path if path else request.path
|
path_final = path if path else request.path
|
||||||
|
|
||||||
data_log = {
|
nuevo_log = Log.objects.create(
|
||||||
'user_id': 0,
|
user_id=0,
|
||||||
'user': usuario_final,
|
user=usuario_final,
|
||||||
'app_id': 0,
|
app_id=0,
|
||||||
'remote_address': utils.get_client_ip(request),
|
remote_address=utils.get_client_ip(request),
|
||||||
'request': '',
|
request='',
|
||||||
'response': '',
|
response='',
|
||||||
'status_code': status_code if status_code else '0',
|
status_code=status_code if status_code else '0',
|
||||||
'path': path_final,
|
path=path_final,
|
||||||
'method': request.method,
|
method=request.method,
|
||||||
'createdAt': timezone.now(),
|
createdAt=timezone.now(),
|
||||||
}
|
)
|
||||||
|
|
||||||
nuevo_log = Log.objects.create(**data_log)
|
|
||||||
return nuevo_log.pk
|
return nuevo_log.pk
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user