log4net:错误,无法找到配置部分“log4net”。

3

当我尝试使用以下代码配置我的记录器时,出现了以下错误:

log4net.Config.XmlConfigurator.Configure();

app.config 的格式如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <root>
      <level value="ALL" />
      <appender-ref ref="LogFileAppender" />
    </root>
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
      <param name="File" value="C:\Logs\my-log-file.txt" />
      <param name="AppendToFile" value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%date [%thread] %-5level %logger [%C{1}.%M] - %message%newline" />
      </layout>
    </appender>
  </log4net>
</configuration>

我想为系统的每个组件编写单独的日志。我已经为主类编写了一个工作日志,但是当我尝试为另一个类配置另一个日志时,出现了这个错误。导致这种情况的原因是什么?
谢谢!

这里有一个解决方法 --> XmlElement log4NetSection = (XmlElement)ConfigurationManager.GetSection("log4net"); log4net.Config.XmlConfigurator.Configure(log4NetSection);根据:https://dev59.com/FGQm5IYBdhLWcg3wnAKR - Ross Bush
其实我认为是System.ConfigurationManager命名空间。 - Ross Bush
没错。我只需要添加对System.Configuration的引用即可。然而,当我尝试配置记录器时,错误仍然发生。log4net:ERROR 无法在应用程序的.config文件中找到配置部分“log4net” - Pat Mustard
你能澄清一下你所说的配置不同类是什么意思吗?另外,你确定使用了正确的配置文件,即被复制到bin\debug或bin\release文件夹中吗? - sgmoore
我也遇到了同样的问题。我的是一个控制台应用程序,有单独的log4net.config文件。不确定为什么它会寻找那个部分,因为它甚至不需要它。 - Pradeep
显示剩余4条评论
1个回答

2
我最终使用以下内容来配置我的Add-In和RTD:
[Add-In]
log4net.Config.XmlConfigurator.Configure(
                new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "MyAdd-In.dll.config"));

[RTD]

log4net.Config.XmlConfigurator.Configure(
                new FileInfo(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\RtdServer.dll.config"));

然后为我的RTD配置了单独的记录器。

希望对你有所帮助。


非常棒。对我起作用了。 - jaxxbo
我使用了以下代码:log4net.Config.XmlConfigurator.Configure(new FileInfo(string.Format("{0}.{1}",Assembly.GetExecutingAssembly().Location, "config"))); - jaxxbo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接