我正在使用log4net和ElasticsearchAppender。 现在我想添加另一个ElasticSearch appender,但有另一个索引。 我现在所做的是:Log4Net和ElasticSearch - 多个索引
<appender name="ElasticSearchAppender" type="log4net.ElasticSearch.ElasticSearchAppender, log4net.ElasticSearch">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%date - %level - %message %property{label} %property{mstimeload} %property{applicationid} %property{page}
%property{ipclient} %property{browser} %property{browsersignature} %property{appversion} %property{sessionuniquecodetag} %property{globalcountertailsloaded}
%property{ipserveraddress}" />
</layout>
<connectionString value="Server=myip;Index=log;Port=9200;rolling=true"/>
<lossy value="true" />
<bufferSize value="100" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="INFO"/>
</evaluator>
</appender>
<appender name="ElasticSearchAppenderClient" type="log4net.ElasticSearch.ElasticSearchAppender, log4net.ElasticSearch">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%date - %level - %message %property{label} %property{applicationid} %property{ipclient} %property{browser} %property{browserversione} %property{browsersignature}"/>
</layout>
<connectionString value="Server=myip;Index=logclient;Port=9200;rolling=true"/>
<lossy value="true" />
<bufferSize value="100" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="INFO"/>
</evaluator>
</appender>
然后在服务器端我有
private static readonly log4net.ILog log = log4net.LogManager.GetLogger("ElasticSearchAppender");
private static readonly log4net.ILog logclient = log4net.LogManager.GetLogger("ElasticSearchAppenderClient");
问题是,当我添加的属性的值。因为我做的是例如:
log4net.ThreadContext.Properties["label"] = label;
log4net.ThreadContext.Properties["ipclient"] = ipclient;
log4net.ThreadContext.Properties["applicationid"] = applicationid;
log4net.ThreadContext.Properties["page"] = page;
...
log.Info(ex);
的第一个日志和
log4net.ThreadContext.Properties["label"] = label;
log4net.ThreadContext.Properties["browser"] = browser;
log4net.ThreadContext.Properties["browserversion"] = browserversion;
...
logclient.Info("");
但随后的日志索引logclient
在我找到指数log
,反之亦然的性能。相反,我希望为每个索引拥有两个不同的独立日志索引,并使用不同的属性。