2016-10-07 3 views
0

私はLog4Netを使ってデータベースにログインしていますが、それは簡単なことですが、デバッグするとすべてのログモードが偽であることがわかります。Log4Netのプロパティは常に偽です(おそらく初期化されていません)

私はherehere、およびhereのソリューションを実装しようとしましたが、いずれも私のために働いていません。

それらのすべて

はどちらか、私は私の AsseblyInfo.cs

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "filepath", Watch = true)] 

を必要とするか、私は私がしましたlog4net.LogManager.GetLoggers()

を呼び出す前に、私は

log4net.Config.XmlConfigurator.Configure(new FileInfo("filepath")); 

を使用することができることを。..基本的には同じことを言いますこれらの両方を試して、さまざまな場所に移動し、スタートアッププロジェクトに入れて、Application_Start()に入れてみましたが、影響はありませんでした。

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "../log4net.config", Watch = true)] 

namespace ... 
{ 
    public class LogService : ILogService 
    { 

     private readonly log4net.ILog _log; 

     public LogService() 
     { 
      log4net.Config.XmlConfigurator.Configure(new FileInfo("../log4net.config")); 
      _log = log4net.LogManager.GetLogger 
     (System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 
     } 

    //more stuff 
    } 
} 

誰もが私が欠けている何かを見ることができます:

ここに私のlog4net.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:\Projects\log4net.txt" /> 
     </listeners> 
    </trace> 
    </system.diagnostics> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
    </configSections> 
    <log4net> 
    <root> 
     <level value="ALL" /> 
     <appender-ref ref="ADOAppender" /> 
     <appender-ref ref="FileAppender" /> 
    </root> 
    <appender name="FileAppender" type="log4net.Appender.ConsoleAppender"> 
     <file value="C:\Projects\Log.txt"/> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date{ABSOLUTE} [%thread] %level - %message%newline%exception"/> 
     </layout> 
    </appender> 
    <appender name="ADONetAppender" type="log4net.Appender.AdoNetAppender"> 
     <bufferSize value="1" /> 
     <connectionType value="System.Data.SqlClient.SqlConnection, System.Data"/> 
     <connectionString value="XXXXXXX"/> 
     <commandText value="dbo.sp_CreateErrorLog" /> 
     <commandType value="StoredProcedure" /> 
     <parameter> 
     <parameterName value="@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="@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="@User" /> 
     <dbType value="String" /> 
     <size value="50" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{log4net:HostName}" /> 
     </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> 
    </log4net> 
</configuration> 

そして、私のクラスのコードですか?私は困惑している。

+0

log4netが提供するログを含めることはできますか? –

+0

ログにはすべてのロギングプロパティが無効になっているだけで、設定ファイルが読み込まれないと思うようになります。 –

答えて

0

私の特定のプログラムが異常に動作した理由は、log4netを使用するログサービスを呼び出すAPIを使用していたからです。

私は単にAPIのルートにlog4net.configファイルを移動し、log4netのは、私の場合にあった最初の呼び出しのルートディレクトリになりますので、これは

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)] 

を使用してそれを呼び出す必要がありました私がいたディレクトリとは異なる Log4Netを実装しています。

関連する問題