繁体   English   中英

使用[assembly:]进行log4net配置

[英]log4net configuration with [assembly:]

我很好奇以下行如何在程序集中配置log4net:

[assembly: log4net.Config.XmlConfigurator(Watch=true)]

我猜这个在运行时调用“main()”之前的某个时间调用,但是什么时候发生这种情况,有什么影响呢? 是否有其他框架/库使用此程序集属性来加载这样的初始上下文? 做这样的事情是否有任何优点/缺点,而不是在main()中调用“Configure”方法?

这样做的好处是代码在主代码之前和静态初始化之前初始化。

这意味着您可以在静态构造函数中使用log4net日志记录。 如果没有预先初始化log4net的方法,在静态构造函数中,您永远不会确定代码是否已正确初始化。

这个区域似乎没有很好地记录(或者很容易找到),但我认为被调用方法的初始化是在装配加载时执行的。

“我猜这会在运行时调用”main()“之前的某个时间被调用,但是什么时候发生这种情况,有什么影响呢?”


根据log4net文档

使用属性可以是一种更清晰的方法,用于定义应用程序的配置将从何处加载。 但值得注意的是, 属性纯粹是被动的 它们仅供参考。 因此,如果使用配置属性,则必须调用log4net以允许它读取属性。

所以我猜你还是要调用XmlConfigurator.Configure()方法或LogManager.getLogger()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM