Программно установить Nhibernate на более низкий уровень ведения журнала для log4net - PullRequest
3 голосов
/ 18 апреля 2011

У меня есть приложение, которое регистрируется в log4net, но также использует Nhibernate. Мое приложение настраивает как Nhibernate (используя конфигурацию Fluent Nhibernate), так и log4Net (используя BasicConfigurator) программно .

Проблема в том, что мои журналы полны информации журнала Nhibernate, которая мне не нужна в 99,9% случаев, и приложение замедляется из-за полной регистрации в Nhibernate.

Как я могу настроить Nihbernate, чтобы он не делал никаких журналов или log4Net для программного игнорирования всех регистраторов Nhibernate? Я знаю, что вы можете сделать это, используя конфигурационные файлы xml, но это не вариант для меня .

Любая помощь будет высоко ценится.

1 Ответ

7 голосов
/ 18 апреля 2011

См. Log4Net: Программно указать несколько регистраторов (с несколькими файловыми апдендерами) , где я их украл:

public static void SetLevel(string loggerName, string levelName)
{
    ILog log = LogManager.GetLogger(loggerName);
    Logger l = (Logger)log.Logger;

    l.Level = l.Hierarchy.LevelMap[levelName];
}


SetLevel("NHibernate","Error");
...