【问题标题】:Log4net not printing to console in wpfLog4net 未在 wpf 中打印到控制台
【发布时间】:2012-02-21 14:13:37
【问题描述】:

我有一个 WPF 应用程序,在 log4net 中有 2 个 log4net 附加程序,第一个打印到文件,第二个应该打印到控制台。

由于某种原因,我无法在 log4net 上显示结果,但我确实在文件中看到了它。怎么了?

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net debug="true">
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="C:\\Temp\\1.txt" />
      <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>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
      <layout type="log4net.Layout.PatternLayout">
        <param name="Header" value="[Header]\r\n" />
        <param name="Footer" value="[Footer]\r\n" />
        <param name="ConversionPattern" value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
      </layout>
    </appender>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="RollingLogFileAppender" />
      <appender-ref ref="ConsoleAppender" />
    </root>
  </log4net>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>

【问题讨论】:

    标签: wpf log4net


    【解决方案1】:

    您是否看到启动应用程序时弹出控制台。

    您可能必须将应用程序配置为控制台项目才能拥有控制台窗口...

    否则您可以检查跟踪信息。通常,如果附加程序无法登录到所需的位置,他会尝试在那里留下一条错误消息。

    Visual Studio 的输出窗口在调试时捕获跟踪消息...

    可能重复:Log4net won't log to console (WinForms app)

    【讨论】:

    • 这是一个骗局。写入控制台不会在 WPF 中创建控制台。
    • 不,我没有看到控制台打开。此外,当我创建新的 ConsoleApplication 并使用相同的 app.config 时,它工作正常。另外,kenny - 你能详细说明为什么它不能在 WPf 中工作吗?
    • 查看另一篇文章,了解有关在 wpf 应用程序中显示控制台的更多信息
    【解决方案2】:

    如果您想在 Visual Studio 的输出窗口中查看消息,您应该改用以下内容:

    <appender name="TraceAppender" type="log4net.Appender.TraceAppender" >
    

    【讨论】:

    • 这会显示log4NET的错误吗?我不会这么认为。这会将您的日志消息发送到跟踪,但不会捕获发送到跟踪的内容。
    • 如果您将调试设置为 true,这只会显示内部 log4net 消息。 &lt;log4net debug="true"&gt;
    • @Schwarzie2478 我不确定他是否要求“显示 log4NET 的错误”。我认为他希望将 log4net 输出转到输出窗口。
    【解决方案3】:

    你打过一次XmlConfigurator.Configure() 吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 1970-01-01
      相关资源
      最近更新 更多