Abbiamo un enorme codice legacy con flusso complesso con operazioni di sincronizzazione e asincrone. Pertanto, è necessario registrare un ID univoco per una richiesta specifica in tutti i messaggi di registro, dove le operazioni eseguite sono eseguite in thread diversi e che i thread si trovano in più contesti di esecuzione.Come registrare l'ID di richiesta nel log del framework di riproduzione su tutto il contesto di esecuzione
Ho provato a utilizzare MDC e specificare -% X {req_id} in logger.xml e la soluzione fornita nel blog sotto menzionato utilizzando il dispatcher di akka personalizzato, ma non funziona in più contesti di esecuzione, e inoltre non funziona affidabile in contesto di esecuzione singola, dove a volte restituisce req_id null. (http://yanns.github.io/blog/2014/05/04/slf4j-mapped-diagnostic-context-mdc-with-play-framework/)
A causa della base di codice complessa ed enorme non è possibile passare l'ID di richiesta in ogni chiamata di funzione. C'è un modo per raggiungere questo obiettivo, con meno modifiche? Abbiamo bisogno dell'ID di richiesta nei log generati anche dal framework di gioco.
ma onRequest() non è disponibile in tutto il contesto di esecuzione in Play. Secondo la mia comprensione, ho ragione? – user3828976
'onRequest()' è disponibile solo quando viene effettuata una richiesta. Allo stesso modo in tutti gli altri contesti devi creare e finire 'TraceContext'. – hrushikesh
L'abbiamo risolto passando al contesto di esecuzione singola. – user3828976