禁用Active Record的Log4Net日志记录

4
我该如何禁用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");

你当前的日志配置是什么样子? - Felice Pollano
1
你是说关闭NHibernate日志记录吗?如果我没记错,ActiveRecord本身不会记录任何东西。 - Mauricio Scheffer
是的,我需要关闭 NHibernate 日志记录... - David Bonnici
1个回答

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>

我只需要为Active Record进行日志记录。谢谢。 - David Bonnici

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接