我正在使用log4Net
进行日志记录。我也有以下一套...
<log4net debug="true"> .. </>
好的,现在,当我有以下代码时
log4net.Config.BasicConfigurator.Configure();
我真的没有得到任何详细的内部调试信息,但我确实显示了我记录的任何内容。
现在,当我交换该代码并将其替换为:
log4net.Config.XmlConfigurator.Configure();
我收到很多内部调试xml信息以及我记录的任何内容,都会显示出来。
那为什么呢?这两者有什么区别?
答案 0 :(得分:6)
是的。如果要使用代码而不是配置来配置日志,那么您需要使用BasicConfigurator。 @Aaronaught你的帖子很老了,这可以解释为什么你的陈述:
BasicConfigurator只允许在根目录下配置一个appender,它只能登录到控制台。
.. 不正确。我在2015年3月使用BasicConfigurator进行事件,文件和数据库日志记录。它还支持每个记录器多个appender。我的log4net是以编程方式配置的,而不是从配置文件中配置的。
答案 1 :(得分:5)
BasicConfigurator
只允许在根目录下配置一个appender,它只能登录到控制台。它并没有真正为您提供任何调试信息,因为实际上不是任何调试信息。
XmlConfigurator
为您提供了一整套log4net配置选项 - 有关详细信息,请参阅手册的Configuration部分。它实际上以一个使用BasicConfigurator
的示例开始,并继续显示您可以在XML中设置的所有其他属性。
在生产应用程序中,您可能希望使用不同的记录器,使用不同的阈值和区域;您可能会从几个不同的组件接收日志信息,并且不希望为每个组件执行完全相同的日志记录。你也肯定想要登录控制台以外的地方 - 日志文件,事件日志,电子邮件警报等等。您只能使用XmlConfigurator
。