1

この質問はここで尋ねられましたが、解決策はプログラムによる構成ではありませんでした。この場合、ライブラリWrapper.dllは で適切に構成されていますCommon.Logging。コンソール アプリケーションConsoleApplication1.exeは、Log4NetLoggerFactoryAdapter.

これは正常に動作Wrapper.dllし、ログ エントリが からコンソールに送信されます。

app.config:_

<configSections>
  <sectionGroup name="common">
    <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
  </sectionGroup>
  <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<common>
  <logging>
    <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net1211">
      <arg key="configType" value="INLINE" />
    </factoryAdapter>
  </logging>
</common>
<log4net>... a valid ConsoleAppender ..</log4net>

内のコードConsoleApplication1:

//var properties = new Common.Logging.Configuration.NameValueCollection();
//properties.Add("configType", "INLINE");
//var adapter = new Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter(properties);
var c1 = new Wrapper();

これは機能しませんWrapper.dllからコンソールにログ エントリは送信されません。app.config:_

<configSections>
  <!-- <sectionGroup name="common">
    <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
  </sectionGroup> -->
  <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<!-- <common>
  <logging>
    <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net1211">
      <arg key="configType" value="INLINE" />
    </factoryAdapter>
  </logging> 
</common> -->
<log4net>... a valid ConsoleAppender ..</log4net>

内のコードConsoleApplication1:

var properties = new Common.Logging.Configuration.NameValueCollection();
properties.Add("configType", "INLINE");
var adapter = new Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter(properties);
var c1 = new Wrapper();

プログラムによるソリューションを使用すると、アダプタまたは から正常に使用できGetLoggerますが、「Wrapper」ライブラリで使用されるロガーからログ イベントを伝播することはできません。ConsoleApplication1log4net

正常に動作していることに注意してください。xmlを許可し、プログラムによる呼び出しにコメントを付けました。関連するxmlにコメントを付け、プログラムコードを実装しまし。これは些細な例であることにも注意してください。実際のアプリケーションはCommon.Logging、Matlab から実装された .NET ライブラリを使用しようとしています。

4

1 に答える 1