ログを更新したい Azure ワーカー ロールがあります (プロジェクトには既存のログがありましたが、それが機能しているとは確信していません)。Common.Logging を使用するように設定されていますが、Log4Net を使用しています。Log4Net に 2 つのアペンダーを設定しました。1 つは ElasticSearch に、もう 1 つはローリング ファイルに、どちらも出力をログに記録していません。
worker ロールの app.config で、log4net を構成し、次に Common.Logging を構成しました。
...
<log4net>
<appender name="ElasticSearchAppender" type="log4net.ElasticSearch.ElasticSearchAppender, log4stash">
<Server>localhost</Server>
<Port>9200</Port>
<IndexName>log_test_%{+yyyy-MM-dd}</IndexName>
<IndexType>LogEvent</IndexType>
<Bulksize>2000</Bulksize>
<BulkIdleTimeout>10000</BulkIdleTimeout>
<IndexAsync>False</IndexAsync>
<ElasticFilters>
<Add>
<Key>My Data Origin</Key>
<Value>Worker Role</Value>
</Add>
</ElasticFilters>
</appender>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="C:\tmp\log4net_rollingfile.log" />
<appendToFile value="true" />
<maximumFileSize value="100KB" />
<maxSizeRollBackups value="2" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level %thread %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="ElasticSearchAppender" />
<appender-ref ref="RollingFile" />
</root>
</log4net>
<common>
<logging>
<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net">
<arg key="configType" value="INLINE" />
</factoryAdapter>
</logging>
</common>
構成に何か問題があると思う傾向があります。ただし、RollingFile アペンダーは実際に c:\tmp\log4net_rollingfile.log を作成するため、実際にファイルに何も書き込まれない理由を説明するのに途方に暮れています。また、データは ElasticSearch に送信されません。
「log4net.Internal.Debug」で Log4Net 診断をオンにすると、アペンダーがロードされていることがわかります。
log4net: Adding appender named [ElasticSearchAppender] to logger [root].
log4net: Adding appender named [RollingFile] to logger [root].