我有一个应用程序,它记录到log4net但也使用Nhibernate。我的应用程序配置Nhibernate(使用Fluent Nhibernate配置)和log4Net(使用BasicConfigurator)以编程方式。
问题是我的日志充满了Nhibernate日志信息,我不需要99.9%的时间而且应用程序因Nhibernate的完整日志记录而变慢。
如何配置Nihbernate不进行任何日志记录或log4Net以编程方式忽略所有Nhibernate记录器? 我知道您可以使用xml配置文件执行此操作,但这不是我的选项。
非常感谢任何帮助。
答案 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");