Ho diversi processi in esecuzione contemporaneamente che voglio accedere allo stesso file.Registrazione da più processi allo stesso file utilizzando Enterprise Library 4.1
Abbiamo utilizzato Application Library 4.1 Logging Application Block (con un RollingFlatFileTraceListener
) e funziona correttamente, a parte il fatto che antepone un GUID al nome del file di registro quando due processi tentano di scrivere nel file di registro in allo stesso tempo (una stranezza di System.Diagnostics.TextWriterTraceListener
credo).
Ho provato varie cose, incluso chiamare Logger.Writer.Dispose()
dopo aver scritto nel file di registro, ma non è l'ideale per effettuare una chiamata di blocco ogni volta che viene scritta una voce di registro.
I forum EntLib suggeriscono di utilizzare MSMQ con un servizio di distribuzione, ma questa non è un'opzione in quanto MSMQ non è consentito nella mia azienda.
Esiste un altro modo per accedere rapidamente e facilmente da più thread/processi allo stesso file?
hai ricevuto una soluzione alternativa? forse usando *** MSMQ ***? – Kiquenet
@Kiquenet è passato tanto tempo, non riesco a ricordare. Se ci provo davvero, ricordo vagamente che abbiamo finito con l'uso di file di registro diversi per processi diversi per ovviare a questo problema. Non è l'ideale, ma volevamo mantenere le cose semplici. – Riko
Potrei aggiungere se dovessi scegliere un framework di registrazione ora, starei il più lontano possibile da Enterprise Library. È troppo complesso, sia da usare che da configurare, e non facilmente estendibile. Probabilmente andrei con [log4net] (https://logging.apache.org/log4net/) o [NLog] (http://nlog-project.org/). – Riko