首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LogManager.GetLogger和xmlconfigurator.configure序列

LogManager.GetLogger和xmlconfigurator.configure序列
EN

Stack Overflow用户
提问于 2014-07-01 16:32:12
回答 2查看 6.5K关注 0票数 2

我有带有log4net配置的自定义xml文件。以下代码用于配置log4net。它工作得很好。

问题是,当LogManager.Getlogger不知道配置文件的细节时,它是如何获得"MyLogger“的?

在调用LogManager.GetLogger和xmlconfigurator.configure时,我们应该保持任何顺序吗?

代码语言:javascript
复制
Class LoggerClass
{

private static readonly ILog fileLogger = LogManager.GetLogger("MyLogger");


public LoggerClass()
{

FileInfo logConfiguration = new FileInfo("ConfigFile.xml");

//Loading the configuration from the xml file. 
XmlConfigurator.Configure(logConfiguration);

}

public void Log(string msg)
{
fileLogger.Log(......); 
}

}
EN

回答 2

Stack Overflow用户

发布于 2014-07-01 17:16:33

LogManager类具有客户端用来请求记录器实例的静态方法。GetLogger方法用于检索记录器。

GetLogger方法返回类型为ILog的对象,该对象包含用于在不同级别进行日志记录的方法,并且还具有用于确定在当前配置中是否启用了这些日志记录级别的属性。

关于序列,Xmlconfigurator.Configure()方法的调用将设置日志记录功能,因此在写入任何日志之前,必须使用此命令Xmlconfigurator.Configure()设置log4net库。

并且调用LogManager.GetLogger()Xmlconfigurator.Configure()的顺序并不重要。只需确保在进行任何日志记录之前,您已经使用LogManager.GetLogger()方法初始化了记录器,并且已经使用Xmlconfigurator.Configure()设置了记录器。

参考

我希望,这有助于并回答您的问题:)

票数 3
EN

Stack Overflow用户

发布于 2014-07-01 16:50:31

通常,XmlConfigurator.configure()是在ASP.NET应用程序中的global.asax中的应用程序启动时完成的,因此应用程序中的所有类都会获得log4net配置。

代码语言:javascript
复制
//Global.asax

void Application_Start(object sender, EventArgs e)
{
    log4net.Config.XmlConfigurator.Configure();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24505746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档