Mam kilka procesów uruchomionych jednocześnie, które chcę zalogować do tego samego pliku.Rejestrowanie z wielu procesów do tego samego pliku przy użyciu biblioteki Enterprise 4.1
Korzystaliśmy z bloku aplikacji do rejestrowania w bibliotece Enterprise 4.1 (z RollingFlatFileTraceListener
) i działa dobrze, poza tym, że dodaje GUID do nazwy pliku logu, gdy dwa procesy próbują zapisać do pliku dziennika na w tym samym czasie (przypuszczam, że jest to dziwactwo z System.Diagnostics.TextWriterTraceListener
).
Próbowałem różnych rzeczy, w tym wywoływania Logger.Writer.Dispose()
po zapisaniu do pliku dziennika, ale nie jest idealne, aby wykonać wywołanie blokujące za każdym razem, gdy wpis dziennika jest zapisywany.
Fora EntLib sugerują używanie MSMQ z usługą Dystrybutora, ale nie jest to możliwe, ponieważ MSMQ nie jest dozwolone w mojej firmie.
Czy istnieje inny sposób, w jaki mogę szybko i łatwo zalogować się z wielu wątków/procesów do tego samego pliku?
czy otrzymałeś alternatywne rozwiązanie? może używając *** MSMQ ***? – Kiquenet
@Kiquenet to był taki długi czas, nie pamiętam. Jeśli próbuję naprawdę mocno, niewyraźnie pamiętam, że w końcu użyliśmy różnych plików dziennika dla różnych procesów, aby obejść ten problem. Nie jest idealny, ale chcieliśmy zachować prostotę. – Riko
Mogę dodać, gdybym musiał teraz wybrać framework do logowania, chciałbym pozostać jak najdalej od Biblioteki Enterprise. Jest zbyt skomplikowany, zarówno do używania, jak i konfiguracji, i nie jest łatwy do rozszerzenia. Prawdopodobnie pójdę z [log4net] (https://logging.apache.org/log4net/) lub [NLog] (http://nlog-project.org/). – Riko