Подтвердить что ты не робот

Есть ли ведение журнала для мира .NET?

Я несколько новичок в стеке .NET, и мне было интересно, есть ли эквивалент slf4j для платформы .NET, Для меня вход в Facade и возможность поменять местами реализации каротажа по мере необходимости имеет смысл. Кроме того, API-интерфейсы обертки, доступные в slf4j, меня много раз спасли, когда мне нужно было использовать стороннюю библиотеку, которая была закодирована в отношении единой структуры ведения журнала, которую я не использовал.

Есть ли там проект, который действует как фасад между регистраторами, такими как log4net, nLog и корпоративная библиотека? Существуют ли оболочки, которые позволяют мне выполнять вызовы в эти библиотеки и направлять их в другую библиотеку? Должен ли я начинать проект с открытым исходным кодом, чтобы сделать это сам? Этот вопрос повторяется, потому что я не знаю, как правильно спросить? И наоборот, это общий способ сделать это, используя аспектное программирование?

4b9b3361

Ответ 1

Извините, я использовал эту вещь, и я забыл, что это не версия Apache. Это фактически открытый исходный код и часть проекта, называемого общей инфраструктурой. Он также называется общий журнал. Он работает с MS Enterprise, log4net и другими. Он работает хорошо.

Ответ 2

Взгляните на замок Виндзор "Механизм регистрации" .

Базовый код здесь. Адаптер Log4net здесь. NLog adapter здесь.

Добавлен адаптер для Serilog.

Без адаптеров есть поддержка для ConsoleLogger, DiagnosticsLogger, StreamLogger и NullLogger.

Очень легко написать адаптеры для любой другой структуры ведения журнала.

Ответ 4

У меня была та же проблема. Пройдя эти рекомендации, я обнаружил Ninject.Extensions.Logging

Это здорово, так как фасад имеет лучший смысл в сочетании с DI в любом случае

Он поставляется с прокси-серверами для NLog, NLog2 и log4net.

Вот хороший пример того, как использовать его в сочетании с NLog: http://blog.tonysneed.com/2011/10/09/using-nlog-with-dependency-injection/

Я понимаю, что этот вопрос уже пару лет, но из-за полноты для других пользователей я все же решил опубликовать это "Решение"

Ответ 5

Так как это было написано, появилась еще одна интересная обертка журнала, называемая Fody.Anotar. На сегодняшний день это, вероятно, самый полный из них. Большинство других, но Logging Faciliy, довольно устарели, поддерживая только самые старые регистраторы.

Он имеет адаптеры для NLog, Log4Net, Serilog, CommongLogging, Catel, LibLog, MetroLog, NServiceBus и Splat и позволяет вам создать адаптер для вашей собственной библиотеки.

Вы можете использовать Nuget для его установки. Посмотрите на Anotar. *. Пакеты Fody, например Anotar.NLog.Fody.

Ответ 7

Я почему-то нашел все решения здесь неудовлетворительными, особенно для библиотек /API. Хотя я и не думал, что хочу, я написал "Logger" с открытым исходным кодом, который должен обрабатывать большинство проблем.

Возможно, вы можете посмотреть Dapplo.Log, вы можете получить его из NuGet.

Идея состоит в том, чтобы использовать Dapplo.Log в вашей библиотеке, а проект, который использует это, может, чем прямой (при необходимости) вывод любого журнала в их регистратор выбора. Примеры для направления вывода можно найти в тестах с реализациями некоторых основных фреймворков здесь.

Это, вероятно, не идеально (пока), и я приветствую запросы на тягу или билеты.