0

您好我在我的 Windows 应用程序中使用 log4net 以下是我的 app.confige 文件的内容。我的 app.confige 文件中有两个标签,我需要它们都可以在我的应用程序中工作。但问题是,如果我在这种情况下包含两个标签,我的日志不会在 application.log 文件中创建,而如果我只评论运行时和程序集标签,那么日志会在 application.log 文件中创建,但当我注释掉时运行时和程序集标签我无法为应用程序实现其他功能。

请帮我解决问题。

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="bin"/>
    </assemblyBinding>
  </runtime>
  <assemblies>
    <add assembly="ImageGear19.Core"/>
  </assemblies>
  <!--The settings below are required for Logging-->
  <log4net>
    <appender name="Application" type="log4net.Appender.RollingFileAppender">
      <file value="Application.log"/>
      <appendToFile value="true"/>
      <maxSizeRollBackups value="10"/>
      <maximumFileSize value="2 MB"/>
      <rollingStyle value="Size"/>
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date[%thread](%-5level): %message%newline"/>
      </layout>
    </appender>
    <logger name="Application">
      <level value="All"/>
      <appender-ref ref="Application"/>
    </logger>
  </log4net>
4

2 回答 2

1

调试 log4net 的最佳方法是启用其内部错误日志记录。这会记录它所做的一切,并帮助您追溯问题所在。

这是关于如何在 log4net 中启用内部日志记录的类似线程和描述

将此添加到您的应用设置

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="log4net.Internal.Debug" value="true"/>
    </appSettings>
</configuration>

并将其添加到 web.config 的底部

<configuration>
    ...
    <system.diagnostics>
        <trace autoflush="true">
            <listeners>
                <add 
                    name="textWriterTraceListener" 
                    type="System.Diagnostics.TextWriterTraceListener" 
                    initializeData="C:\temp\log4net.txt" />
            </listeners>
        </trace>
    </system.diagnostics>
    ...
</configuration>
于 2012-08-07T06:34:41.900 回答
1

就个人而言,处理前两个标签的逻辑存在一些错误。鼓励您在初始化 log4net 时进行调试。

于 2012-08-07T06:40:34.957 回答