首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Log4Net错误: log4net中基于文件的登录无法工作

Log4Net错误: log4net中基于文件的登录无法工作
EN

Stack Overflow用户
提问于 2021-04-27 06:19:00
回答 1查看 216关注 0票数 0

我正在尝试将log4net记录器实现到我的基于application.file的WPF登录,而不是为我工作。

我读过很多其他的问题和答案,但我还没能解决.这就是我遇到的错误:

代码语言:javascript
复制
log4net: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" />

log4net.config

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <log4net>
    <root>
      <level value="ALL" />
      <appender-ref ref="console" />
      <appender-ref ref="file" />      
    </root>
    <appender name="console" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %level %logger - %message%newline" />
      </layout>
    </appender>
    <appender name="file" type="log4net.Appender.RollingFileAppender">
      <file value="${LocalAppData}//myapp//Logs//myappplog.log" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="5" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date - %message%newline" />
      </layout>
    </appender>  
  </log4net>
</configuration>

Assemblyinfo.cs

代码语言:javascript
复制
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

App.config

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </configSections>
    <log4net configSource="log4net.config" />
  <entityFramework>

mainview.xaml.cs公共部分类MainView : UserControl {

代码语言:javascript
复制
   private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
    
    public MainView()
    {
        InitializeComponent();
        Getloaded();
    }
    public void Getloaded()
    {
        log4net.Config.XmlConfigurator.Configure();
        try
        {
            log.Info("        =============  Started Application  =============        ");

        }
        catch(Exception ex)
        {
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2021-04-27 06:37:39

您正在声明log4net,但没有添加它。它会导致.net上升这个错误。您应该从配置文件中删除log4net节声明,并将配置文件名(log4net.config)传递到log4net.Config.XmlConfigurator.Configure("log4net.config");方法中,或者直接将log4net配置部分添加到App.config中(<log4net configSource="log4net.config" /> )。我相信第二种方式对你来说是最好的。

下面是配置在本例中的样子。

代码语言:javascript
复制
<configSections>
     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />     
      <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<log4net configSource="log4net.config" />
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67277873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档