NetCore-Serilog +ES 分区记录

Serilog 生成 ES 格式的日志

  1. Serilog.AspNetCore
  2. Serilog.Formatting.Elasticsearch
  3. Serilog.Sinks.Async
 		/// <summary>
        ///  日志 模板 Path;
        /// </summary>
       public static string LogFilePath(string LogEvent) => $@"{AppContext.BaseDirectory}Log/{LogEvent}/log.log";

 public class Program
    {
        public static IConfiguration Configuration { get; } = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
            .AddEnvironmentVariables()
            .Build();
       

        public static int Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration().ReadFrom.Configuration(Configuration)
            .MinimumLevel.Debug()
            .Enrich.FromLogContext()
            .WriteTo.Logger(i =>
            {
                i.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Error)
                 .WriteTo.File(formatter: new ElasticsearchJsonFormatter(), SharedPath.LogFilePath("Error"), rollingInterval: RollingInterval.Day, fileSizeLimitBytes: 1024 * 1024 * 10, rollOnFileSizeLimit: true); //输出日志到文件 new CompactJsonFormatter():输出格式
            }).WriteTo.Logger(i =>
            {
                i.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Information)
                 .WriteTo.File(formatter: new ElasticsearchJsonFormatter(), SharedPath.LogFilePath("Information"), rollingInterval: RollingInterval.Day, fileSizeLimitBytes: 1024 * 1024 * 10, rollOnFileSizeLimit: true); //输出日志到文件 new CompactJsonFormatter():输出格式
            })
             .WriteTo.Logger(i =>
             {
                 i.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Warning)
                  .WriteTo.File(formatter: new ElasticsearchJsonFormatter(), SharedPath.LogFilePath("Warning"), rollingInterval: RollingInterval.Day, fileSizeLimitBytes: 1024 * 1024 * 10, rollOnFileSizeLimit: true); //输出日志到文件 new CompactJsonFormatter():输出格式
            })      
            .WriteTo.Console(new ElasticsearchJsonFormatter())
            .CreateLogger();
            try
            {
                Log.Information("Starting web host");
                CreateHostBuilder(args).Build().Run();
                return 0;
            }
            catch (Exception ex)
            {
                Log.Fatal(ex, "Host terminated unexpectedly");
                return 1;
            }
            finally
            {
                Log.CloseAndFlush();
            }

        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                }).UseSerilog(dispose: true);
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值