如何禁用log4net状态消息到控制台?

11 console logging log4net

我在我的.NET 3.5控制台应用程序中使用log4net,并希望在控制台标准输出和RollingFileAppender中看到我生成的日志消息.文件输出像魅力一样工作,但是当我执行时,我看到流向控制台标准的状态消息流.我想跳过所有状态信息,只看到我以编程方式生成日志文件的相同消息.

以下是我运行应用程序后看到的示例:

log4net: XmlHierarchyConfigurator: Configuration update mode [Merge].
log4net: XmlHierarchyConfigurator: Logger [root] Level string is [DEBUG].
log4net: XmlHierarchyConfigurator: Logger [root] level set to [name="DEBUG",value=30000].
log4net: XmlHierarchyConfigurator: Loading Appender [Console] type: [log4net.Appender.ConsoleAppender]
log4net: PatternParser: Converter [message] Option [] Format [min=-1,max=2147483647,leftAlign=False]
Run Code Online (Sandbox Code Playgroud)

它一直持续到它描述记录器对象的整个实例化为止.

我怎么关掉这个?我可以吗?我已经尝试了各种配置文件设置,但没有什么能让它们消失!哎呀...

Ash*_*Ash 17

设置debug = false

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>

  <log4net debug="false">
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="your file name" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
      </layout>
    </appender>

    <root>
      <level value="DEBUG" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>
</configuration>
Run Code Online (Sandbox Code Playgroud)


小智 15

我刚刚经历了同样的问题(不出所料,这就是我发现这个问题的方法).

无论如何,我的问题,也可能是你的问题,是由web/app配置文件设置" <log4net debug = true >"引起的.太明显了吧?我已经从web片段粘贴了我的app.config设置的骨架,并专注于appender,而不是真正给root log4net元素第二眼.但是你现在有了.这是在常见问题解答中,但是其他一些事情引起了我的注意而不是这个属性.


Ser*_*y K 5

如果你的代码中有这个:

log4net.Config.BasicConfigurator.Configure();
Run Code Online (Sandbox Code Playgroud)

将其更改为:

log4net.Config.XmlConfigurator.Configure();
Run Code Online (Sandbox Code Playgroud)


ale*_*rul 3

请尝试一次使用一个新项目来复制问题(首先参考不带附加器的 log4net,然后使用控制台附加器,然后使用两个附加器)。如果它显示相同的行为,请发布 log4net 的完整配置。

您也可以尝试使用log4net 配置示例页面中的配置示例。

编辑:这可能是这些消息的原因:How do I enable log4net inside reporting