У меня есть класс, для каждого экземпляра которого я создаю новый регистратор и атташе для приложения-буфера и приложение-фли. Все выполняется во время выполнения, и никакая информация не выбрана из файла конфигурации.
Теперь, чтобы освободить ресурсы в методе пользовательского метода класса, мне нужно закрыть этот конкретный регистратор и выпустить все его подключенные ресурсы, чтобы избежать утечки памяти.
В настоящий момент то, что я делаю, по крайней мере, сбрасывает файл appender и записывает всю информацию о регистрации, но не освобождает блокировку в этом конкретном файле ведения журнала и не выпускает никаких ресурсов.
Каков надлежащий способ отключения регистратора при не выключении других активных регистраторов, которые находятся в процессе
log4net.ILog log = log4net.LogManager.GetLogger(loggerName);
foreach (IAppender iapp in log.Logger.Repository.GetAppenders())
{
BufferingAppenderSkeleton buffered = iapp as BufferingAppenderSkeleton;
if (buffered is BufferingForwardingAppender)
{
((BufferingForwardingAppender)buffered).Flush();
}
}
log.Logger.Repository.Shutdown();
Надеюсь, я задал свой вопрос достаточно ясно:)