2012-02-21 208 views
0

我有一个WP4应用程序在log4net中有两个log4net appender,第一次打印到文件,第二次打印到控制台。Log4net不打印到控制台在wpf

出于某种原因,我无法在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> 

回答

2

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

这可能是你有你的应用程序配置为控制台项目有一个控制台窗口...

否则,你可以检查跟踪信息。通常情况下,如果appender无法登录到所需的位置,则会尝试在其中留下一条错误消息。 Visual Studio的渔获

输出窗口调试时跟踪消息...

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

+0

这是一个重复。写入控制台不会在WPF中创建控制台。 – kenny 2012-02-21 14:47:47

+0

不,我没有看到控制台打开。此外,当我创建新的ConsoleApplication并使用相同的app.config时,它工作正常。另外,肯尼 - 你能详细说明它为什么不能在WPF中工作吗? – user829174 2012-02-21 15:40:53

+0

查看其他帖子,了解更多有关在wpf应用程序中显示控制台的信息 – Schwarzie2478 2012-02-21 16:20:57

0

你打一次电话XmlConfigurator.Configure()

1

如果你想看到在Visual Studio中的输出窗口中的消息,你应该改用以下:

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

这是否会显示log4NET的错误?我不这么认为。这会将日志消息发送到跟踪,但不会捕获发送到跟踪的事件。 – Schwarzie2478 2012-02-21 15:45:27

+0

如果将debug设置为true,这将只显示内部log4net消息。 '' – 2012-02-21 17:45:33

+1

@ Schwarzie2478无论如何,我不确定他是否要求“显示log4NET的错误”。我想他想让log4net输出转到输出窗口。 – 2012-02-22 13:57:25