2012-02-21 23 views
42

デバッグ中にlog4netをコンソールとファイルの両方に出力するよう設定する方法はありますか?デバッグモードでコンソールに出力するlog4netの設定方法

私は、ソフトウェアを効率的にデバッグする方法を見つけようとしています。発生したときにすぐにログを観察しています。

ファイルへの書き込みは、ファイルがディスクにフラッシュされてから開くまで待つ必要がないため、デバッグに問題があります。

したがって、私はコンソールに書き込むことをお勧めします。

あなたはどう思いますか?

app.configファイルを追加して追加しましたが、結果コンソールを表示できません。続き

は私のapp.configを構成です:

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
    </configSections> 
    <system.serviceModel> 
     <bindings> 
      <wsHttpBinding> 
       <binding name="WSHttpBinding_IProviderService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false"> 
        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/> 
        <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false"/> 
        <security mode="Message"> 
         <transport clientCredentialType="Windows" proxyCredentialType="None" realm=""/> 
         <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default"/> 
        </security> 
       </binding> 
      </wsHttpBinding> 
     </bindings> 
     <client> 
      <endpoint address="http://localhost:8081/AP2" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IProviderService" contract="IProviderService" name="WSHttpBinding_IProviderService"> 
       <identity> 
        <dns value="localhost"/> 
       </identity> 
      </endpoint> 
     </client> 
    </system.serviceModel> 
    <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"> 
     <param name="Threshold" value="INFO" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> 
     </layout> 
    </appender> 
    <root> 
     <level value="DEBUG" /> 
     <appender-ref ref="RollingLogFileAppender" /> 
    </root> 
    </log4net> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
</configuration> 
+0

をあなたはすべての設定を投稿できますか? –

答えて

84

あなたは、両方のアペンダを宣言しておく必要がありあなたの<root>セクションに

は、このようなあなたのlog4netの設定:

<log4net> 
    <appender name="Console" type="log4net.Appender.ConsoleAppender"> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%date %-5level: %message%newline" /> 
     </layout> 
    </appender> 

    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="Log.txt" /> 
     <appendToFile value="false" /> 
     <rollingStyle value="Size" /> 
     <maxSizeRollBackups value="10" /> 
     <maximumFileSize value="50MB" /> 
     <staticLogFileName value="true" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%date %-5level[%logger]: %message%newline" /> 
     </layout> 
    </appender> 

    <root> 
     <level value="INFO" /> 
     <appender-ref ref="Console" /> 
     <appender-ref ref="RollingFileAppender" />   
    </root> 
</log4net> 
+0

この回答は素晴らしいですが、うまくいきません – user1623521

+1

実際、私は別の問題を抱えていました。ここで2つのトップの回答が私を助けました:http://stackoverflow.com/questions/3898218/log4net-not-working – user1623521

8

ルートのログにあなたのアペンダをフックアップするのを忘れているように見えます:

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="RollingLogFileAppender" /> 
    <appender-ref ref="ConsoleAppender" /> 
</root> 
関連する問題