.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に書き込まれたものを同じファイルに記録したいのですが、別のファイルに書き込む必要がある場合はそうです。
また、ホストプロセスのログファイルには、アドインから実行されたログは反映されません。