Sto lavorando a un prodotto di grandi dimensioni costituito da tre servizi Windows e diverse applicazioni Windows normali (.exe). Ora vogliamo passare a ETW e Semantic Logging e utilizzare Microsoft.Diagnostics.Tracing.EventSource.La dipendenza riguarda l'implementazione di EventSource per la registrazione semantica nell'applicazione di grandi dimensioni
Ho letto da qualche parte che tutte le parti logicamente connesse dell'applicazione devono utilizzare la stessa origine evento. Ciò significa che preferibilmente vorremmo avere praticamente una sola EventSource per i nostri servizi. Ma come possiamo farlo senza introdurre dipendenze tra praticamente tutti gli assembly nel prodotto?
Attualmente l'applicazione è composta da circa 70 gruppi. E per essere in grado di creare un metodo di log in EventSource che ad esempio accetta un valore enum, l'assembly che contiene l'origine evento deve fare riferimento all'assembly che definisce l'enum, il che significa che la definizione enum deve essere spostata dal assembly che usa, ad esempio .exe, a qualcosa a cui fa riferimento tutti gli assembly.
C'è un modo per avere diverse classi derivate da EventSource in un'applicazione che utilizza ancora la stessa ETS EventSource? O quale sarebbe un buon modo per implementare la registrazione semantica con ETW in uno scenario come questo, quando è indesiderabile introdurre un sacco di nuove dipendenze per creare la tua classe di log?
io di solito uso un GUID univoco, un unico codice categoria di registrazione, con un enum unico (che definisce dire "una componente di registrazione") più una TraceLevel (errore, avvertimento, informazioni, etc.). Quindi, il metodo Log può utilizzare cool [CallerMemberName] in modo da impostare automaticamente il nome del metodo tracciato. Questo crea solo un riferimento a una classe comune (che puoi anche condividere con un link sorgente in Visual Studio se non vuoi un riferimento a un assembly solido). –
@SimonMourier Questo funzionerebbe per i log "generici", ma non sembra funzionare bene per la registrazione semantica? – DeCaf
sì, quello era più un commento :) –