一、安裝Elasticsearch
參考前面寫的文章:https://www.cnblogs.com/songxingzhu/p/7909486.html
安裝完Elasticsearch后,修改/etc/elasticsearch/elasticsearch.yml文件,並追加下列內容。
network.host: 0.0.0.0 http.port: 9200
然后重啟Elasticsearch:
systemctl restart elasticsearch
二、新建C#項目,並引入Log4net庫和log4net.ElasticSearch庫。
log4net:https://www.nuget.org/packages/log4net/
log4net.ElasticSearch:https://www.nuget.org/packages/log4net.ElasticSearch/
三、在項目中添加log4net.config文件,並設置成“如果較新則復制”,內容如下:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <log4net> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger - %message%newline" /> </appender> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="logs/" /> <appendToFile value="true" /> <rollingStyle value="Composite" /> <staticLogFileName value="false" /> <datePattern value="yyyyMMdd'.log'" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="1MB" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <appender name="ElasticSearchAppender" type="log4net.ElasticSearch.ElasticSearchAppender, log4net.ElasticSearch"> <layout type="log4net.Layout.PatternLayout,log4net"> <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n" /> </layout> <connectionString value="Server=139.219.141.155;Index=log_test;Port=9200;rolling=false"/> <lossy value="false" /> <evaluator type="log4net.Core.LevelEvaluator"> <threshold value="ALL" /> </evaluator> <bufferSize value="1" /> </appender> <root level="ALL"> <appender-ref ref="ConsoleAppender" /> <appender-ref ref="RollingLogFileAppender" /> <appender-ref ref="ElasticSearchAppender" /> </root> </log4net> </configuration>
注意將黃色區域,更換成您安裝好的Elasticsearch服務器的IP地址。
四、Main函數中簡單寫日志輸出
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Log4NetForELK { class Program { static void Main(string[] args) { log4net.Config.XmlConfigurator.Configure(new FileInfo("log4net.config")); var repository = log4net.LogManager.GetLogger(typeof(Program)); for (int i = 0; i < 100; i++) { repository.InfoFormat("haha this is a test {0}", i); repository.Warn("中文測試,柱柱同學。"); repository.Error("here is error.", new Exception("this is exception.")); } } } }
五、在Elasticsearch2平台端安裝head並搜索日志
/usr/share/elasticsearch/bin/plugin install file:/usr/share/elasticsearch/bin/elasticsearch-head-master.zip
六、搜索日志
打開瀏覽器,輸入:http://139.219.141.155:9200/_plugin/head/