Ho cercato di accedere ai servizi WCF (incluse tecnologie come NLog e PostSharp), ma ho qualcosa che non ho ancora risolto ... Non so se mi manca qualcosa di ovvio o semplicemente non è possibile.Servizi WCF, registrazione verticale
Diciamo che ho un livello di servizio WCF con oltre 100 punti di accesso alle chiamate del servizio web. Uno di questi sta causando un problema. Sotto quel livello c'è un livello di logica aziendale e un livello di database. Quello che voglio fare (credo) è attivare la registrazione per quella chiamata di servizio (che includerebbe l'ID di attività per la correlazione), in modo che tutte le chiamate a quel servizio vengano registrate e anche tutti i messaggi di registro nei livelli inferiori vengano registrati. Non desidero davvero attivare la registrazione a livello di assembly per i livelli inferiori perché saranno condivisi da molti dei metodi del servizio Web.
È possibile anche tramite un framework esistente o utilizzando qualcosa come CorrelationManager in modo creativo?
Grazie! Questo è esattamente il tipo di cosa che sto cercando. Idealmente mi piacerebbe usare NLog su log4net perché sembra un po 'più attivo, ma questo è esattamente il tipo di cosa che mi farebbe cambiare idea ... Hai usato un codice come questo in rabbia? Come si gestirà un servizio multi-thread? –
log4net.ThreadContext utilizza l'archiviazione locale del thread. Finché una chiamata di servizio non interrompe i thread (leggi l'utilizzo di asych), funziona perfettamente in un ambiente con multithreading. Sì, ne ho fatto parecchi per servizi di produzione aziendale reali. L'ultimo è stato quello di mettere un id di correlazione in tutti i log (qualsiasi cosa spinga sul ThreadContext può essere inclusa nel modello di conversione dell'appender.) Log4net non è molto attivo perché manca molto ed estendendolo è molto ben documentato. Se riesci a sopportare che sia stato scritto prima dei farmaci generici, ti tratta bene. – ErnieL
Grazie Ernie. Era esattamente il tipo di cosa che stavo cercando! –