关于ELK的安装大家可以参考ubuntu18 docker中部署ELK 和 caas/docker-elk ,

首先需要在ELK中创建一个index patterns

首先我们创建一个aspnetcore webapi项目

1.添加如下引用:

Serilog
Serilog.Sinks.ElasticSearch
Serilog.Extensions.Logging

2.修改appsettings.json文件:

{
"Logging": {
"LogLevel": {
"Default": "Information",
"System": "Information",
"Microsoft": "Information"
}
},
"AllowedHosts": "*",
"ElasticConfiguration": {
"Uri": "http://192.168.100.5:5000/"
}
}

3.修改Startup.cs文件

  public Startup(IConfiguration configuration)
{
Configuration = configuration;
var elasticUri = Configuration["ElasticConfiguration:Uri"];
Log.Logger = new LoggerConfiguration().Enrich.FromLogContext().MinimumLevel.Debug() .WriteTo.Elasticsearch(
new ElasticsearchSinkOptions(new Uri(elasticUri)) { MinimumLogEventLevel=LogEventLevel.Information,AutoRegisterTemplate=true, })
.CreateLogger();
} public void ConfigureServices(IServiceCollection services)
{
services.AddLogging(loggingBuilder => loggingBuilder.AddSerilog(dispose: true));
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}

4.修改controller:

 ILogger<ValuesController> _logger;
public ValuesController(ILogger<ValuesController> logger) {
_logger = logger;
} [HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
_logger.LogInformation($"oh hai there! : {DateTime.UtcNow}");
try
{
throw new Exception("oops. i haz cause error in UR codez.");
}
catch (Exception ex)
{
_logger.LogCritical("ur app haz critical error", ex);
_logger.LogError(ex, "ur code iz buggy.");
}
return new string[] { "value1", "value2" };
}

5.运行项目然后在elk中验证

备注:网上关于elk的地址都是http://xxx:9200 (elasticsearch地址), 我在测试的时候发现怎么都没有写入到elk,后来改为5000(Logstash的地址)就好了

参考:

Logging with ElasticSearch, Kibana, ASP.NET Core and Docker

thecarlo/elastic-kibana-netcore-serilog

最新文章

  1. 深入理解redis持久化
  2. 《大道至简》第三章读后感+ppt课后作业
  3. SwipeRefreshLayout 首次打开出现加载图标
  4. AFNetworking request failed unacceptable content type text/html
  5. 基于.NET的微软ORM框架视频教程(Entity Framework技术)
  6. js数组常用方法汇总
  7. MFC 窗口分割
  8. OpenGrok的安装
  9. jquery.validate 验证(支持前台js验证通过,然后ajax后台数据校验)二
  10. java学习笔记——IO流部分
  11. ES6是什么
  12. jq实现数字增加或者减少的动画
  13. Sql server数据库定时任务,数据库作业,数据库定时任务
  14. OneHotEncoder独热编码和 LabelEncoder标签编码
  15. Cookies 和session
  16. python Strip函数和Split函数的用法总结 (python2.0,但用法与3.0是差不多的)
  17. mysql 数据库安装
  18. Nginx详解二十六:Nginx架构篇之性能优化
  19. java内部类(二)
  20. Centos-6.5搭建oracle11g RAC集群

热门文章

  1. Qt TCP通信
  2. webview学习
  3. java mybatis Column &#39;AAA&#39; in where clause is ambiguous
  4. Python之虚拟环境
  5. 黑白之间的FastFlux
  6. C# 读取Excel文件数据
  7. PacMan 03——追踪玩家
  8. 201871010121-王方《面向对象程序设计(Java)》第四周学习总结
  9. 前端页面模拟浏览器搜索功能Ctrl+F实现
  10. mysql 之编码配置、引擎介绍、字段操作、数据类型及约束条件