Обычный.Ведение журнала — как получить обратный вызов при записи журнала?

#c# #.net #logging #common.logging

#c# #.net #ведение журнала #Обычный.ведение журнала

Вопрос:

У меня есть библиотека, которая использует Common.Ведение журнала. Мне нужно, чтобы мой код вызывался при любой записи в его журнал.

Ответ №1:

Если вы не хотите ничего менять, вы могли бы использовать AOP для перехвата вызова метода Common.Ведение журнала, но имейте в виду, что AOP добавляет много накладных расходов, поскольку за сценой он вводит код во время выполнения.В противном случае вы могли бы обернуть / расширить Common.Войдите в систему и создайте свой собственный метод записи, который вызывает делегат, который укажет на код, который вы хотите выполнить (вид обратного вызова)

Ответ №2:

если ваше ведение журнала было разработано для интерфейса, вы можете использовать шаблон декоратора для создания нового ведения журнала, который будет внутренне вызывать исходное ведение журнала.

И затем вы можете зарегистрировать свой новый DecoratorLogging в ILogging (через внедрение зависимостей), который у вас есть, чтобы ни один пользователь ILogging не знал, что они на самом деле используют ваш новый регистратор 🙂

Ответ №3:

Настройка моего собственного адаптера в LogManager.Адаптер работал нормально.