c# - 使用配置文件时 Log4Net 不工作

标签 c# log4net

我想在我当前的项目中使用log4net
因此,我开始阅读官方文档中的示例,并首先使用了 BasicConfigurator,但下一步是切换到配置文件,而不是对所有内容进行硬编码。
我创建了一个名为 MyApp.log4netXML 文件,其中包含:

<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/

相关文章:

c# - 在 .NET 中调用 COM 枚举器的正确方法是什么?

C#如何在Direct2D绘图中提高效率

c# - 调用 Shutdown() 后重新启动 log4net 内存附加器

c# - 如何使用异步/等待方法管理类似 NDC 的 log4net 堆栈? (每个任务堆栈?)

log4net - 删除 Log4net(空): Conditional Output

c# - WPF SelectedItem 颜色在列表失去焦点时消失

c# - 我可以从 SmtpClient.SendAsync 的 userToken 对象中获得什么好处?

c# - 嵌套 While 语句不起作用

nhibernate - 使用 log4net 清空 NHibernate 日志文件

asp.net - MVC、IIS 和 Azure 日志记录错误