使用Common.Logging.Log4Net.Universal以xml格式编写日志以供YALV解析时出现问题

使用Common.Logging.Log4Net.Universal以xml格式编写日志以供YALV解析时出现问题,xml,log4net,common.logging,Xml,Log4net,Common.logging,我使用Common.Logging.Log4Net.Universal以xml格式编写日志,这样我就可以使用YALV读取日志了! 但是,我看不到为此生成的日志。 我已经在普通的log4net库中使用了这种技术,并且没有任何问题。 以下是我的“web.config”文件中的相关配置: <configSections> <sectionGroup name="common"> <section name="logging" type="Common

我使用Common.Logging.Log4Net.Universal以xml格式编写日志,这样我就可以使用YALV读取日志了! 但是,我看不到为此生成的日志。 我已经在普通的log4net库中使用了这种技术,并且没有任何问题。 以下是我的“web.config”文件中的相关配置:

 <configSections>
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <common>
    <logging>
      <factoryAdapter type="Common.Logging.Log4Net.Universal.Log4NetFactoryAdapter, Common.Logging.Log4Net.Universal" >
        <arg key="configType" value="FILE"/>
        <arg key="configFile" value="~/log4net.config" />
      </factoryAdapter>
    </logging>
  </common>
<configuration>
    <log4net>
      <appender name="FileAppender" type="log4net.Appender.FileAppender">
        <file value="C://Logs//mylogfile.xml" type="log4net.Util.PatternString"/>
        <appendToFile value="true" />
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        <layout type="log4net.Layout.XmlLayoutSchemaLog4j">
          <locationInfo value="true"/>
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
            <levelMin value="INFO" />
            <levelMax value="FATAL" />
          </filter>
      </appender>
      <root>
        <level value="ALL"/>
        <appender-ref ref="FileAppender"/>
      </root>
  </log4net>
</configuration>
<log4net>
  <appender name="FileAppender" type="log4net.Appender.FileAppender">
    <file value="C://Logs//mylogfile.xml" type="log4net.Util.PatternString"/>
    <appendToFile value="true" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <layout type="log4net.Layout.XmlLayoutSchemaLog4j">
      <locationInfo value="true"/>
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO" />
        <levelMax value="FATAL" />
      </filter>
  </appender>
  <root>
    <level value="ALL"/>
    <appender-ref ref="FileAppender"/>
  </root>
</log4net>
执行时,代码执行时不会出现任何错误,但是上面提到的“mylogfile.xml”永远不会生成


请提供建议,以防有人尝试相同的方法。

当我查看Universal logging项目的GitHub源代码时,我看到web.config的以下配置:

<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="common">
  <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging"/>
</sectionGroup>
</configSections>
<common>
<logging>
  <factoryAdapter type="Common.Logging.Log4Net.Universal.Log4NetFactoryAdapter, Common.Logging.Log4Net.Universal" />
</logging>
 </common>
 </configuration>

然后,您应该从“log4net.config”文件中删除配置根元素:

 <configSections>
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <common>
    <logging>
      <factoryAdapter type="Common.Logging.Log4Net.Universal.Log4NetFactoryAdapter, Common.Logging.Log4Net.Universal" >
        <arg key="configType" value="FILE"/>
        <arg key="configFile" value="~/log4net.config" />
      </factoryAdapter>
    </logging>
  </common>
<configuration>
    <log4net>
      <appender name="FileAppender" type="log4net.Appender.FileAppender">
        <file value="C://Logs//mylogfile.xml" type="log4net.Util.PatternString"/>
        <appendToFile value="true" />
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        <layout type="log4net.Layout.XmlLayoutSchemaLog4j">
          <locationInfo value="true"/>
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
            <levelMin value="INFO" />
            <levelMax value="FATAL" />
          </filter>
      </appender>
      <root>
        <level value="ALL"/>
        <appender-ref ref="FileAppender"/>
      </root>
  </log4net>
</configuration>
<log4net>
  <appender name="FileAppender" type="log4net.Appender.FileAppender">
    <file value="C://Logs//mylogfile.xml" type="log4net.Util.PatternString"/>
    <appendToFile value="true" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <layout type="log4net.Layout.XmlLayoutSchemaLog4j">
      <locationInfo value="true"/>
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO" />
        <levelMax value="FATAL" />
      </filter>
  </appender>
  <root>
    <level value="ALL"/>
    <appender-ref ref="FileAppender"/>
  </root>
</log4net>

如果这不起作用,请启用log4net的调试,以查看您的配置出了什么问题