【.Net Core】.Net Core中使用日志(Serilog)

前言

在任何业务场景中都会涉及到日志的使用,可以通过日志记录系统运行过程中的错误信息、操作信息、用户信息、数据记录等,下面将在.net core中使用Serilog.AspNetCore组件进行日志的操作

 组件安装

在NuGet包管理器中搜索“Serilog.AspNetCore”,并安装即可

初始化Logger

在program.cs的main方法中初始化Logger,代码如下

public static void Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                .Enrich.FromLogContext()
                .WriteTo.Console()// 日志输出到控制台
                .WriteTo.File("logserilog.txt", rollingInterval: RollingInterval.Day) //日志输出txt文件,生成周期每天,如:logserilog20201026.txt
                .CreateLogger();
            try
            {
                Log.Information("Starting up");
                CreateHostBuilder(args).Build().Run();
            }
            catch (Exception ex)
            {
                Log.Fatal(ex, "Application start-up failed");
            }
            finally
            {
                Log.CloseAndFlush();
            }
            CreateHostBuilder(args).Build().Run();
        }
在CreateHostBuilder方法中添加方法.UseSerilog(),将Serilog设置为提供日志程序,代码如下
public static IHostBuilder CreateHostBuilder(string[] args) =>
           Host.CreateDefaultBuilder(args)
             .UseWindowsService()
             .UseSerilog()
               .ConfigureServices((hostContext, services) =>
               {
                   services.AddHostedService<Worker>();
               });

完整代码如下

public class Program
    {
        public static void Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                .Enrich.FromLogContext()
                .WriteTo.Console()// 日志输出到控制台
                .WriteTo.File("logserilog.txt", rollingInterval: RollingInterval.Day) //日志输出txt文件,生成周期每天,如:logserilog20201026.txt
                .CreateLogger();
            try
            {
                Log.Information("Starting up");
                CreateHostBuilder(args).Build().Run();
            }
            catch (Exception ex)
            {
                Log.Fatal(ex, "Application start-up failed");
            }
            finally
            {
                Log.CloseAndFlush();
            }
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
           Host.CreateDefaultBuilder(args)
             .UseWindowsService()
             .UseSerilog()
               .ConfigureServices((hostContext, services) =>
               {
                   services.AddHostedService<Worker>();
               });
    }

使用

1、通过依赖注入使用(Controller)

把Logger注入到你的Controller

 private readonly ILogger<ArticleController> _logger;

        public ArticleController(ILogger<ArticleController> logger)
        {
            _logger = logger;
        }

在方法中直接使用即可如下

 [HttpGet]
        public IEnumerable<string> Get()
        {
            //内置日志
            _logger.LogTrace(1000, "log Trace msg");  
            _logger.LogDebug(1001, "log Debug msg"); 
            _logger.LogInformation(1002, "log Information msg"); 
            _logger.LogWarning(1003, "log Warning msg"); 
            _logger.LogError(1004, "log Error msg"); 
            _logger.LogCritical(1005, "log Critical msg"); 
            return new string[] { "value1", "value2" };
        }

2、直接使用(Log)

 public async Task GetNews()
 {
            Log.Information("information");
            Log.Error("erroe");
            Log.Warning("log Warning msg");
 }

最终效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一起来学吧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值