【问题标题】:Log4Net error : "Failed to find configuration section log4net"Log4Net 错误:“找不到配置部分 log4net”
【发布时间】:2015-01-14 13:18:54
【问题描述】:

我开始使用 log4net。我正在开发一个小型控制台项目,我必须在其中实现这个框架。

一开始我创建了一个小型控制台项目,看看它是如何在没有任何其他代码的情况下工作的。 我设法让它正常工作。

现在我尝试迁移应用程序中的所有代码,但在执行控制台应用程序的 .exe 时出现此错误:

    "ERROR failed to find configuration section "log4net" in the application's .config 
file.Check your .config file for the <log4net> and <configSections> elements. The
 configuration section should look like : <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler.log4net"/>

代码:

public class Program
{
    private static readonly log4net.ILog log = log4net.LogManager.GetLogger
    (System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
    public static void Main(string[] args)
    {
        log4net.Config.XmlConfigurator.Configure();
        ILog log = log4net.LogManager.GetLogger(typeof(Program));
        ...

app.config 还不存在所以它的内容和我做的测试项目一样:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net" />
    </configSections>
  <log4net>
    <appender name="FileAppender" type="log4net.Appender.FileAppender,log4net">
      <file value="D:\WEB\SAI\log\nas\log.txt" />
      <appendToFile value="true" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO" />
        <levelMax value="FATAL" />
      </filter>
    </appender>

    <root>
      <level value="INFO"/>
      <appender-ref ref="FileAppender"/>
    </root>
  </log4net>
</configuration>

在网上搜索了一番后,我补充说:

[assembly: log4net.Config.XmlConfigurator()]

按照建议发送到我的 AssemblyInfo.cs,但结果仍然相同... 提前感谢您的帮助

【问题讨论】:

  • 尝试在您添加到AssemblyInfo.cs 的行中指定ConfigFile 和Watch 构造函数参数。例如:[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.Config", Watch = true)].
  • 感谢它仍然无法正常工作
  • 在执行 exe 时,.config 是否仍然驻留在您的 exe 旁边?换句话说,您在执行之前没有将 exe 复制到新位置,而没有复制配置文件吗?
  • 这是问题对不起!非常感谢
  • 这对我也有帮助。不错的收获。我也错过了。

标签: c# log4net app-config


【解决方案1】:

添加 [程序集:log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)] 在 AsseblyInfo.cs 中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多