Я действительно нашел способ сделать это в этой теме:
http://www.l4ndash.com/Log4NetMailArchive/tabid/70/forumid/1/postid/18271/view/topic/Default.aspx
Я протестировал первый метод, и он работает. На всякий случай, если эта ссылка уже не годится, я воспроизведу здесь код. По сути, автор утверждает, что это можно сделать двумя способами.
Первый способ:
Создайте новую модель блокировки, которая получает блокировку (и создает файл), только если работает соответствующий порог для этого регистратора.
public class MyLock : log4net.Appender.FileAppender.MinimalLock
{
public override Stream AcquireLock()
{
if (CurrentAppender.Threshold == log4net.Core.Level.Off)
return null;
return base.AcquireLock();
}
}
Теперь в файле конфигурации установите порог для запуска как:
<threshold value="OFF" />
и убедитесь, что вы установили новую модель LockingModel в качестве модели:
<lockingModel type="Namespace.MyLock" />
Я использую это с прокручиваемым приложением файла.
Второй способ указан по ссылке. Я не пробовал эту технику, но она кажется технически обоснованной.