在.NetCore中简单使用Serilog日志

导读:本篇文章讲解 在.NetCore中简单使用Serilog日志,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目前都比较流行使用 Serilog, 官网url: https://serilog.net/

1:Nuget包

============公司一***项目中新增如下Nuget依赖=====================

<PackageReference Include=”Serilog.Extensions.Hosting” Version=”3.1.0″ />
<PackageReference Include=”Serilog.Sinks.Async” Version=”1.4.0″ />
<PackageReference Include=”Serilog.Sinks.Console” Version=”3.1.1″ />
<PackageReference Include=”Serilog.Sinks.Elasticsearch” Version=”8.2.0″ /> //写入到 Elasticsearch log
<PackageReference Include=”Serilog.Sinks.File” Version=”4.1.0″ />

在.NetCore中简单使用Serilog日志

2:Serilog 简单使用 

public static int Main(string[] args)
        {
            try
            {
                Log.Logger = new LoggerConfiguration()
                      .MinimumLevel.Debug()//最小等级
                      //  .MinimumLevel.Error()
                      .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
                      .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning)
                      .Enrich.FromLogContext()//需要加上,来自日志的上下文
                      .WriteTo.Console()//写到控制台,调式时比较直观
                      .WriteTo.Async(c => c.File("Logs/logs.txt", rollOnFileSizeLimit: true, fileSizeLimitBytes: 1024 * 1024 * 2, retainedFileCountLimit: 60))
                       
                      .CreateLogger();
                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)
             .ConfigureLogging((hostingContext, builder) =>
             {
                 //过滤掉系统默认的一些日志
                 builder.AddFilter("System", LogLevel.Information);
                 builder.AddFilter("Microsoft", LogLevel.Information);
                 builder.AddConsole();
             })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.ConfigureKestrel(c => { c.Limits.MaxRequestBodySize = 1024 * 1024 * 300; });
                    webBuilder.UseUrls("http://*:6666");
                    webBuilder.UseStartup<Startup>();
                })
               .UseSerilog();

 

3:简单说明  

//自动生成60个文件回滚,默认为31个文件
  WriteTo.Async(c => c.File("Logs/logs.txt", rollOnFileSizeLimit: true, fileSizeLimitBytes: 1024 * 1024 * 2, retainedFileCountLimit: 60))

//==第一次启动时会自动创建
Logs/logs.txt
在控制器中也想使用日志怎么办?我们只需要在Controller构造函数中 直接使用Microsoft自带的 log来注入即可使用,非常方便

4:怎么知道是否配置或自启动ok?

在.NetCore中简单使用Serilog日志

5:Docker 挂载一下

 在.NetCore中简单使用Serilog日志

6:效果

在.NetCore中简单使用Serilog日志

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/63965.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!