当前位置: 首页 > news >正文

ASP.NET Core 入门教学五 集成日志

ASP.NET Core 集成 Serilog 是一个流行的日志记录解决方案,它可以帮助你轻松地记录应用程序的运行情况。以下是一个简单的入门指南,帮助你在 ASP.NET Core 项目中集成 Serilog。

1. 安装 Serilog 和相关包

首先,你需要安装 Serilog 和相关的 ASP.NET Core 包。你可以使用 NuGet 包管理器或 .NET CLI 来安装这些包。

使用 NuGet 包管理器
  1. 打开 Visual Studio。
  2. 右键点击你的项目,选择“管理 NuGet 程序包”。
  3. 搜索并安装以下包:
    • Serilog.AspNetCore
    • Serilog.Settings.Configuration(可选,用于从配置文件中读取 Serilog 配置)
使用 .NET CLI

在项目目录中运行以下命令:

 
dotnet add package Serilog.AspNetCore
dotnet add package Serilog.Settings.Configuration

2. 配置 Serilog

你可以通过多种方式配置 Serilog,这里我们使用 appsettings.json 文件来配置。

创建 appsettings.json

在你的项目中创建一个 appsettings.json 文件(如果还没有的话),并添加以下内容:

 
{"Serilog": {"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],"MinimumLevel": "Debug","WriteTo": [{ "Name": "Console" },{ "Name": "File", "Args": { "path": "log.txt" } }],"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],"Properties": {"Application": "YourApplicationName"}}
}
配置 Startup.cs

在你的 Startup.cs 文件中,配置 Serilog 作为日志记录提供程序。

 
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Settings.Configuration;namespace YourNamespace
{public class Startup{public Startup(IConfiguration configuration){Configuration = configuration;}public IConfiguration Configuration { get; }public void ConfigureServices(IServiceCollection services){// 其他服务配置}public void Configure(IApplicationBuilder app, IWebHostEnvironment env){// 其他中间件配置Log.Logger = new LoggerConfiguration().ReadFrom.Configuration(Configuration).CreateLogger();app.UseSerilogRequestLogging();}}
}

3. 使用 Serilog 记录日志

在你的应用程序中,你可以使用 ILogger<T> 接口来记录日志。

在控制器中记录日志
 
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;namespace YourNamespace.Controllers
{[ApiController][Route("[controller]")]public class WeatherForecastController : ControllerBase{private static readonly string[] Summaries = new[]{"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"};private readonly ILogger<WeatherForecastController> _logger;public WeatherForecastController(ILogger<WeatherForecastController> logger){_logger = logger;}[HttpGet]public IEnumerable<WeatherForecast> Get(){_logger.LogInformation("Fetching weather forecasts.");var rng = new Random();return Enumerable.Range(1, 5).Select(index => new WeatherForecast{Date = DateTime.Now.AddDays(index),TemperatureC = rng.Next(-20, 55),Summary = Summaries[rng.Next(Summaries.Length)]}).ToArray();}}
}

4. 运行应用程序

现在你可以运行你的应用程序,并查看控制台和 log.txt 文件中的日志输出。

 
dotnet run

通过以上步骤,你已经成功地在 ASP.NET Core 项目中集成了 Serilog,并开始记录应用程序的日志。你可以根据需要进一步自定义 Serilog 的配置和日志记录行为。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux:手搓shell
  • 研究生深度学习入门的十天学习计划------第六天
  • 基于激光雷达的无人机相互避障
  • Linux---FTP文件服务器搭建及实战
  • Unity URP支持多光源阴影
  • mpc_local_planner的编译问题
  • 搭建和使用OnFinality?
  • ML16_转移矩阵、平稳分布和详细平衡条件
  • uniapp插槽用法
  • 【出行计划 / 2】
  • 在SpringMVC中用fmt标签实现国际化/多语言
  • Express与SQLite集成教程:轻松实现数据库操作
  • 每周12600元奖金池,邀你与昇腾算力共舞,openMind开发者盛宴启幕!
  • 专利申请全攻略:一步一步详解申请流程
  • “Flash闪存”介绍 及 “SD NAND Flash”产品的测试含例程
  • Android单元测试 - 几个重要问题
  • Android交互
  • Android系统模拟器绘制实现概述
  • eclipse的离线汉化
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • happypack两次报错的问题
  • input实现文字超出省略号功能
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • Java 内存分配及垃圾回收机制初探
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • PHP变量
  • SpringCloud集成分布式事务LCN (一)
  • Sublime Text 2/3 绑定Eclipse快捷键
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 来,膜拜下android roadmap,强大的执行力
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 悄悄地说一个bug
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 深入 Nginx 之配置篇
  • 实现简单的正则表达式引擎
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 协程
  • #QT(QCharts绘制曲线)
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (1) caustics\
  • (C++哈希表01)
  • (function(){})()的分步解析
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (三) diretfbrc详解
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (四) 虚拟摄像头vivi体验
  • (转)ABI是什么
  • .htaccess配置常用技巧
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NET下的多线程编程—1-线程机制概述
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @Autowired多个相同类型bean装配问题