第一步:安装Serilog
使用NuGet包安装以下组件:
Serilog.AspNetCore
Serilog.Settings.Configuration
Serilog.Sinks.Console
Serilog.Sinks.Elasticsearch
第二步:修改Program.cs文件
public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>().UseSerilog((ctx, config) => { config.ReadFrom.Configuration(ctx.Configuration); config.WriteTo.Console(new ElasticsearchJsonFormatter()); }); // <-- Add this line;;
第三步:修改appsettings.json文件
{ "Serilog": { "Using": [ "Serilog.Sinks.Console" ], "MinimumLevel": "Verbose", "WriteTo": [ { "Name": "Console" } ], "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ], "Destructure": [ { "Name": "ToMaximumDepth", "Args": { "maximumDestructuringDepth": 4 } }, { "Name": "ToMaximumStringLength", "Args": { "maximumStringLength": 100 } }, { "Name": "ToMaximumCollectionCount", "Args": { "maximumCollectionCount": 10 } } ], "Properties": { "Application": "deploy-demo" } }, "AllowedHosts": "*" }
第四步:打包成镜像运行
docker run -d -p 8003:80 --log-driver=fluentd --link elasticsearch --log-opt fluentd-address=192.168.0.186:24224 --network net_db --name deploydemo imagename