2012-02-01 16 views
0

.Netアドインフレームワークでアドインを使用するアプリケーションを作成しています。私はlog4netを使ってアドインの内部で何が起こっているのかを追跡したいが、出力されたデータを出力ファイルに書き込むことはできない。私はホストでlog4netを使用しています。私のアドインのassemblyinfo.csでアドインでlog4netを使用した.Netアドインフレームワーク

私はこのコード行を追加しました:

[assembly: log4net.Config.XmlConfigurator(Watch = true)] 

これは、.configファイルから設定を取得するためにlog4netのを教えてください。アドインの

私のapp.configは、次のようになります。予想通り

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.diagnostics> 
    <trace autoflush="true" indentsize="4"> 
     <listeners> 
     <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" 
      initializeData="UpdateModuleLog.log" /> 
     <remove name="Default" /> 
     </listeners> 
    </trace> 
    </system.diagnostics> 
    <log4net> 
    <appender name="TraceAppender" type="log4net.Appender.TraceAppender"> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern 
      value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
     </layout> 
    </appender> 
    <root> 
     <level value="INFO"/> 
     <appender-ref ref="TraceAppender"/> 
    </root> 
    </log4net> 
</configuration> 

アドインのはapp.configは、パイプラインに移動します。私のアドインで

は、私はlog4netのをインスタンス化するために、次のコードを持っている:

private static readonly log4net.ILog log = log4net.LogManager.GetLogger 
     (System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 

は最後に、私はこのような私のコードでのlog4netを呼び出す:

 log.InfoFormat("Starting Update Module Version 1.0.0 for Internationalization Database."); 

問題はUpdateModuleLog.logがあるということです決して作成されません。私はそれがホストアプリケーションのbinフォルダーまたはパイプラインのアドインフォルダーに作成されると予想しますが、いずれの場所にも存在しません。私はTraceAppenderを使用しています。なぜなら、DebugやTraceに書き込まれたものを同じファイルに記録したいのですが、別のファイルに書き込む必要がある場合はそうです。

また、ホストプロセスのログファイルには、アドインから実行されたログは反映されません。

答えて

0

答えを見つけました。私のapp.configにはこのコードセクションがありませんでした:

<configSections> 
    <section name="log4net" 
     type="log4net.Config.Log4NetConfigurationSectionHandler, 
      log4net"/> 
    </configSections> 
関連する問題