【问题标题】:Application crashes at modifying my App.config for Log4net为 Log4net 修改我的 App.config 时应用程序崩溃
【发布时间】:2013-11-08 16:29:33
【问题描述】:

这是我第一次使用 Log4Net,所以我确信我在做一些非常愚蠢的事情。

App.config<configuration> 标记内,我有以下内容:

<log4net>
   <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
     <param name="File" value="log-file.txt" />
     <param name="AppendToFile" value="true" />
     <layout type="log4net.Layout.PatternLayout">
        <param name="Header" value="[Header]\r\n" />
        <param name="Footer" value="[Footer]\r\n" />
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n" />
     </layout>
   </appender>

   <root>
     <level value="WARN" />
        <appender-ref ref="LogFileAppender" />
   </root>
</log4net>

在我的 Program.cs 文件中,我捕获了一个 ConfigurationException:

Message: Configuration system failed to initialize
InnerException: Unrecognized configuration section log4net.

但我直接从他们网站上提供的 .NET 示例中复制粘贴了配置代码。我阅读了他们的文档,但是对于以前从未使用过任何类型的日志记录框架的人来说,这非常令人困惑。我还在 CodeProject 上找到了一些教程,它们可以更好地握住你的手,但无法弄清楚我做错了什么。我尝试将&lt;root&gt; 元素放在&lt;appender&gt; 元素之前,这给了我相同的ConfigException。是的,我已经在项目中添加了对 DLL 的引用。

【问题讨论】:

    标签: c# winforms .net-3.5 log4net


    【解决方案1】:

    听起来您刚刚忘记为log4net 包含configSection 条目:

    <configuration>
        <configSections>
            <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
        </configSections>
    
        <!-- other configurations, such as appSettings and whatnot -->
    
        <log4net>
            <!-- log4net configuration that you already have -->
        </log4net>
    </configuration>
    

    为了使用log4net 配置节点,需要告诉系统如何解释该节点,这在log4net.Config.Log4NetConfigurationSectionHandler 类中处理。

    【讨论】:

    • 谢谢,就是这样。您会认为本教程会开始,而不是讨论实际的 log4net 元素...
    猜你喜欢
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多