禁用Active Record的Log4Net日志记录

时间:2011-02-14 16:54:23

标签: c# activerecord log4net castle-activerecord

如何禁用Active Record的Log4Net日志记录......?

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
  </configSections>
  <log4net debug="false">
    <root>
      <level value="DEBUG" />
      <appender-ref ref="LogFileAppender" />
    </root>
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
      <param name="File" value="C:\Projects\MyProject\bin\Log.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="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n" />
      </layout>
    </appender>
  </log4net>

的Global.asax.cs

XmlConfigurationSource source = new XmlConfigurationSource("C:\Projects\MyProject    \\ActiveRecord.xml");
        ActiveRecordStarter.Initialize(source, typeof(User), typeof(Role));
        log4net.Config.XmlConfigurator.Configure();
        log.Info("Application Started");

1 个答案:

答案 0 :(得分:5)

如果要完全禁用日志记录,则可以在根记录器上关闭日志记录。

<root>
    <level value="OFF" />
</root>

如果要仅禁用Active Record,则需要找出Active Record正在使用的命名空间(或者如果它们没有按照此约定使用Active Record正在使用的记录器名称)。

如果是关于NHibernate,那么以下配置可以解决这个问题:

<logger name="NHibernate" additivity="false">
    <level value="OFF"/>
</logger>
<root>
    <level value="DEBUG" />
    <appender-ref ref="LogFileAppender" />
</root>