我想在我当前的项目中使用log4net
。
因此,我开始阅读官方文档中的示例,并首先使用了 BasicConfigurator
,但下一步是切换到配置文件,而不是对所有内容进行硬编码。
我创建了一个名为 MyApp.log4net
的 XML
文件,其中包含:
<log4net>
<appender name="A1" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger %ndc - %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="A1" />
</root>
</log4net>
配置文件位于AppDomain.CurrentDomain.BaseDirectory
。
接下来我添加了
[assembly: XmlConfigurator(ConfigFile = "MyApp.log4net", Watch = true)]
namespace Awesome.Server
{
class Program
{
...
到 Program
类,它与 MyApp.log4net
位于同一目录中。
如果我现在尝试记录一些事情,例如使用...
LogManager.GetLogger(typeof(Program)).Info("Hello World");
...然后什么也没有发生。没有错误,没有消息,什么都没有。
有什么我忘记/误解了它是如何工作的可以解决这个问题吗?
最佳答案
您将配置文件的名称指定为“Awesome.Server.log4net”:
[assembly: XmlConfigurator(ConfigFile = "Awesome.Server.log4net", Watch = true)]
namespace Awesome.Server {
...
}
要么修复您的配置文件名,要么更改程序集属性 ConfigFile
。
关于c# - 使用配置文件时 Log4Net 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30781882/