• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

在ASP.NETCore中使用Serilog进行日志记录

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

从 NuGet 安装 Serilog

核心的包是 SerilogSerilog.AspNetCore
常用的还有 Serilog.Sinks.Console 控制台日志打印 和 Serilog.Sinks.File 文件日志打印。

PM> Install-Package Serilog
PM> Install-Package Serilog.AspNetCore
PM> Install-Package Serilog.Sinks.Console
PM> Install-Package Serilog.Sinks.File

在 Main函数 中配置 Serilog

在 Main 函数的代码大概如下,应该是够用了,如需其他配置请参考 Serilog官方文档

    public static void Main(string[] args)
    {
    	// 配置 Serilog 
        Log.Logger = new LoggerConfiguration()
            // 最小的日志输出级别
            .MinimumLevel.Information()
            // 日志调用类命名空间如果以 Microsoft 开头,覆盖日志输出最小级别为 Information
            .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
            .Enrich.FromLogContext()
            // 配置日志输出到控制台
            .WriteTo.Console()
            // 配置日志输出到文件,文件输出到当前项目的 logs 目录下
            // 日记的生成周期为每天
            .WriteTo.File(Path.Combine("logs", @"log.txt"), rollingInterval: RollingInterval.Day)
            // 创建 logger
            .CreateLogger();
		
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        // 将 Serilog 设置为日志记录提供程序
        .UseSerilog();

或者

    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder (string[] args) {
        return WebHost.CreateDefaultBuilder (args)
            .UseStartup<Startup> ()
            .UseSerilog ((context, configuration) => {
                configuration
                    .MinimumLevel.Information()
                    // 日志调用类命名空间如果以 Microsoft 开头,覆盖日志输出最小级别为 Information
                    .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
                    .Enrich.FromLogContext()
                    // 配置日志输出到控制台
                    .WriteTo.Console()
                    // 配置日志输出到文件,文件输出到当前项目的 logs 目录下
                    // 日记的生成周期为每天
                    .WriteTo.File(Path.Combine("logs", @"log.txt"), rollingInterval: RollingInterval.Day)
                    // 创建 logger
                    .CreateLogger();
            });
    }

在项目中使用 Serilog 进行日志输出

使用 Serilog 时,直接使用 ILogger 即可,因为此服务项目应该是默认注入了,此处需要依赖关系注入知识。
如你不了解依赖关系注入,请看 微软官方文档

    [Route("api/[controller]")]
    [ApiController]
    public class ValuesController : ControllerBase
    {
        private readonly ILogger<ValuesController> _logger;

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

        // GET api/values
        [HttpGet]
        public ActionResult<IEnumerable<string>> Get()
        {
            _logger.LogInformation("Serilog test info.");
            _logger.LogError("Serilog test error.");
            return new string[] { "value1", "value2" };
        }
    }

随后启动项目即可看到控制台和项目文件中出现配置所对应的控制台日志和日志文件。


参考文档 :

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NET开发实战——(八)ASP.NETMVC与数据库之MySQL发布时间:2022-07-10
下一篇:
VSS控制存储过程,及其asp.net的远程调试发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap