asp.net core Serilog的使用

先贴上关于使用这个日志组件的一些使用方法,等有时间了在吧官方的文档翻译一下吧,现在真是没时间。

Serilog在使用上主要分为两大块:

第一块是主库,包括Serilog以及Serilog.AspNetCore,如果导入后一个的话会自动导入前一个,因为后者(serilog.aspnetcore)依赖前者(serilog).

第二块是各种sinks,就是各种输出目标,比如Serilog.Sinks.File这个库主要是将日志输出到文件上,Serilog.Sinks.Console主要是将日志输出到控制台上面。

下面介绍使用方法。

首先添加nuget package:

①:install-package Serilog.AspNetCore -DependencyVersion Highest  这一步操作也会导入Serilog。因为依赖关系。

②: install-package Serilog.Sinks.File  Serilog.Sinks.Console 这一步安装了两个Sinks,因为我要将日志输出到Console和File中。系统默认的也有Console的支持,但是这个的显示更加有好一些。

然后在program中添加如下代码:

 public static int Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                .MinimumLevel.Debug()//最小的输出单位是Debug级别的
                .MinimumLevel.Override("Microsoft", LogEventLevel.Information)//将Microsoft前缀的日志的最小输出级别改成Information
                .Enrich.FromLogContext()
                .WriteTo.File(@"C:\Users\jianxin\Desktop\logFiles\pangjianxin.{Date}.txt",RollingInterval.Day)将日志输出到目标路径,文件的生成方式为每天生成一个文件
                .CreateLogger();

            try
            {
                Log.Information("Starting web host");
                CreateWebHostBuilder(args).Build().Run();
                return 0;
            }
            catch (Exception ex)
            {
                Log.Fatal(ex, "Host terminated unexpectedly");
                return 1;
            }
            finally
            {
                Log.CloseAndFlush();
            }
        }

然后,在CreateWebHostBuilder方法中添加UseSerilog:

 public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseSerilog()//添加这个
                .UseStartup<Startup>();

然后就可以注入Ilogger<sometype>来进行使用了。

posted @ 2018-08-06 10:30  wall-ee  阅读(...)  评论(...编辑  收藏