Abbiamo un modulo ORM C # che genera query. Registra le query generate e altre informazioni nel file di errore / traccia. È usato dalla nostra applicazione web. La maggior parte delle nostre query sono generate dinamicamente (in base a regole aziendali dinamiche e interazioni dell'utente) su cui abbiamo un controllo limitato.
Ovviamente il modulo ORM è completamente disaccoppiato dall'applicazione web, e quindi completamente inconsapevole di sessioni Web, colpi di pagine ecc. Lo svantaggio è che le voci di registro che genera non possono essere ricondotte al colpo di pagina originale. Quando notiamo una query non performante nel log, non possiamo facilmente determinare quale hit della pagina genera quella query.
Come posso mantenere il modulo ORM disaccoppiato dall'applicazione web, ma permetto comunque di registrare sufficienti informazioni rilevanti per me per correlare ogni voce del registro a un hit di sessione / pagina?
(So che possiamo passare l'oggetto logger e l'oggetto logger può conservare le informazioni sulla sessione.Tuttavia, alcune di queste chiamate di funzione sono nidificate a 10 livelli in profondità, quindi passare il logger è complicato).