2016-10-18 24 views
0

私は自分のデータベースにlog4netを使ってログオンしようとしています。私が取得したいページでlog4netはSQL Serverにログを書き込まない

log4net.Config.XmlConfigurator.Configure(); 

そして、この:その後、私は構成に私のglobal.asaxの呼び出しで設定され

<configSections>  
    <!-- Log4Net --> 
    <section name="log4net" 
      type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
</configSections> 
<log4net> 
    <!--AdoNet appender is use for write log file into SQL Server--> 
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> 
     <bufferSize value="1" /> 
     <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     <connectionString value="data source=localhost/SVILUPPO;Initial Catalog=MIODB;user id=sa;password=myPassword;" /> 
     <commandText value="INSERT INTO AppLog ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> 
     <parameter> 
      <parameterName value="@log_date" /> 
      <dbType value="DateTime" /> 
      <layout type="log4net.Layout.RawTimeStampLayout" /> 
     </parameter> 
     <parameter> 
      <parameterName value="@thread" /> 
      <dbType value="String" /> 
      <size value="255" /> 
      <layout type="log4net.Layout.PatternLayout"> 
       <conversionPattern value="%thread" /> 
      </layout> 
     </parameter> 

    <parameter> 
    <parameterName value="@log_level" /> 
    <dbType value="String" /> 
    <size value="50" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%level" /> 
    </layout> 
    </parameter> 

    <parameter> 
    <parameterName value="@logger" /> 
    <dbType value="String" /> 
    <size value="255" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%logger" /> 
    </layout> 
    </parameter> 

    <parameter> 
    <parameterName value="@message" /> 
    <dbType value="String" /> 
    <size value="4000" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%message" /> 
    </layout> 
    </parameter> 

    <parameter> 
    <parameterName value="@exception" /> 
    <dbType value="String" /> 
    <size value="2000" /> 
    <layout type="log4net.Layout.ExceptionLayout" /> 
    </parameter> 

</appender> 

<!--Add appender which you want to use, You can add more then one appender . Like if you want save log both plain text or sql server ,Add both appender.--> 

    <root> 
     <level value="ALL" /> 
     <appender-ref ref="AdoNetAppender" /> 
     <!--Enable this line if you want write log file into sql server--> 
    </root> 
</log4net> 

:私はNuGetを使用してlog4netのをインストールし、このように私のweb.configを設定しましたログに

private static ILog log = LogManager.GetLogger(typeof(Login)); 

log.Debug("Debug message"); 
log.Warn("Warn message"); 
log.Error("Error message"); 
log.Fatal("Fatal message"); 

を保存するが、何も起こりません:(

誰も私を助けることができますか?

+1

ちょうど基礎の上に行く:接続が機能すると 'AppLog'テーブルが正しく定義されていることを? –

+0

'global.asax'で' log4net.Config.XmlConfigurator.Configure(); 'を設定しましたか? – Aristos

+0

接続が正常に動作しています。通常の選択でテストしました。テーブルは正しく定義されています。 –

答えて

1

エラーを見つけるには、log4netで内部デバッグを有効にすることをお勧めします。 log4netのエラーはアプリケーションには送られません。ログに書き込んで、ログが機能しない理由を確認することができます。あなたのApp.configファイルで

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
     <add key="log4net.Internal.Debug" value="true"/> 
    </appSettings> 

... 

    <system.diagnostics> 
     <trace autoflush="true"> 
      <listeners> 
       <add 
        name="textWriterTraceListener" 
        type="System.Diagnostics.TextWriterTraceListener" 
        initializeData="C:\tmp\log4net.txt" /> 
      </listeners> 
     </trace> 
    </system.diagnostics> 
</configuration> 

Log4net FAQ

関連する問題