- 安裝Elasticseach,Kibana
- 創建一個C#項目
- 在項目上添加 log4net(必須),log4net.Appender.ElasticSearch或者log4stash
- 配置App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<appSettings>
<!--log4net日誌配置-->
<!--log4net配置文件路徑-->
<add key="log4net" value="log4net.config"/>
</appSettings>
</configuration>
- 配置log4net.config
(1)使用log4net.Appender.ElasticSearch,配置如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="ElasticSearchAppender" type="log4net.Appender.ElasticSearch.ElasticSearchAppender, log4net.Appender.ElasticSearch">
<Servers>
<Server>
<Address>172.0.0.1</Address>
<Port>9200</Port>
</Server>
</Servers>
<IndexName>testlog</IndexName>
<IndexType>LogEvent</IndexType>
<Bulksize>2000</Bulksize>
<BulkIdleTimeout>5000</BulkIdleTimeout>
<IndexAsync>True</IndexAsync>
</appender>
<logger name="log">
<!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) -->
<level value="INFO" />
<appender-ref ref="ElasticSearchAppender"/>
</logger>
</log4net>
</configuration>
(2)使用log4stash,配置如下
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="ElasticSearchAppender" type="log4stash.ElasticSearchAppender, log4stash">
<Server>172.0.0.1</Server>
<Port>9200</Port>
<IndexName>testlog</IndexName>
<IndexType>LogEvent</IndexType>
<Bulksize>2000</Bulksize>
<BulkIdleTimeout>10000</BulkIdleTimeout>
<IndexAsync>True</IndexAsync>
</appender>
<logger name="log">
<!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) -->
<level value="INFO" />
<appender-ref ref="ElasticSearchAppender"/>
</logger>
</log4net>
</configuration>
- 主程序調用
class Program
{
static void Main(string[] args)
{
//獲取config配置文件地址
var path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase +
ConfigurationManager.AppSettings["log4net"];
ILoggerRepository repository = LogManager.CreateRepository(nameof(Program));
XmlConfigurator.ConfigureAndWatch(repository, new System.IO.FileInfo(path));
var log = LogManager.GetLogger(repository.Name, "log");
log.Info("info");
log.Error("error");
//異步調用,增加運行時間
Console.ReadKey();
}
}