以编程方式将Nhibernate设置为降低log4net的日志记录级别

时间:2011-04-18 09:37:27

标签: c#-4.0 fluent-nhibernate log4net nhibernate-3

我有一个应用程序,它记录到log4net但也使用Nhibernate。我的应用程序配置Nhibernate(使用Fluent Nhibernate配置)和log4Net(使用BasicConfigurator)以编程方式

问题是我的日志充满了Nhibernate日志信息,我不需要99.9%的时间而且应用程序因Nhibernate的完整日志记录而变慢。

如何配置Nihbernate不进行任何日志记录或log4Net以编程方式忽略所有Nhibernate记录器? 我知道您可以使用xml配置文件执行此操作,但这不是我的选项

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:7)

请参阅Log4Net: Programmatically specify multiple loggers (with multiple file appenders) 我从哪里偷走了这个:

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");