File tree Expand file tree Collapse file tree 3 files changed +44
-0
lines changed
Expand file tree Collapse file tree 3 files changed +44
-0
lines changed Original file line number Diff line number Diff line change 1+ import json
2+ import logging
3+ from datetime import datetime
4+ from typing import Any
5+
6+ from fastapi import APIRouter , Request
7+
8+ logger = logging .getLogger ("murfey.server.api.hub" )
9+
10+ router = APIRouter (
11+ prefix = "/logging" ,
12+ tags = ["Logging" ],
13+ )
14+
15+
16+ @router .post ("/logs" )
17+ async def forward_logs (request : Request ):
18+ """
19+ Receives a list of stringified JSON log records from the instrument server,
20+ unpacks them, and forwards them through the handlers set up on the backend.
21+ """
22+
23+ data : list [str ] = await request .json ()
24+ for line in data :
25+ log_data : dict [str , Any ] = json .loads (line )
26+ logger_name = log_data ["name" ]
27+ log_data .pop ("msecs" , None )
28+ log_data .pop ("relativeCreated" , None )
29+ client_timestamp = log_data .pop ("created" , 0 )
30+ if client_timestamp :
31+ log_data ["client_time" ] = datetime .fromtimestamp (
32+ client_timestamp
33+ ).isoformat ()
34+ log_data ["client_host" ] = request .client .host if request .client else None
35+ logging .getLogger (logger_name ).handle (logging .makeLogRecord (log_data ))
Original file line number Diff line number Diff line change 1818import murfey .server .api .file_io_instrument
1919import murfey .server .api .hub
2020import murfey .server .api .instrument
21+ import murfey .server .api .logging
2122import murfey .server .api .mag_table
2223import murfey .server .api .processing_parameters
2324import murfey .server .api .prometheus
@@ -77,6 +78,8 @@ class Settings(BaseSettings):
7778
7879app .include_router (murfey .server .api .instrument .router )
7980
81+ app .include_router (murfey .server .api .logging .router )
82+
8083app .include_router (murfey .server .api .mag_table .router )
8184
8285app .include_router (murfey .server .api .session_control .router )
Original file line number Diff line number Diff line change @@ -692,6 +692,12 @@ murfey.server.api.instrument.router:
692692 type : int
693693 methods :
694694 - GET
695+ murfey.server.api.logging.router :
696+ - path : /logging/logs
697+ function : forward_logs
698+ path_params : []
699+ methods :
700+ - POST
695701murfey.server.api.mag_table.router :
696702 - path : /mag_table/mag_table/
697703 function : get_mag_table
You can’t perform that action at this time.
0 commit comments