ASP.NET Core扩展库之日志
一、简介
二、使用
// 通过IHostBuilder上的UseExtensions方法
// Program.cs .NET 5.0
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
} public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseExtensions(args);
webBuilder.UseStartup<Startup>();
});
}
// 在Startup类中
public class Startup
{ public void ConfigureServices(IServiceCollection services)
{
services.AddExtensions(Configuration);
}
}
三、配置
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseExtensions(args, config=>
{
config.AppLogLevel = Serilog.Events.LogEventLevel.Verbose;
config.SystemLogLevel = Serilog.Events.LogEventLevel.Verbose;
});
webBuilder.UseStartup<Startup>();
});
如果采用配置文件方式,只需在配置源(如appsettings.json)中设置相关的配置字段:
{
"AppLogLevel": "Verbose",
"AllowedHosts": "*"
}
四、配置日志级别
|
日志分类
|
对应日志名
|
对应配置字段
|
默认级别
|
|
系统日志
|
Microsoft.* 以及 System.*
|
SystemLogLevel
|
Warning
|
|
EFCore日志
|
Microsoft.EntityFrameworkCore.Database.Command
|
EFCoreCommandLevel
|
Information
|
|
应用日志
|
除开系统日志及EFCore日志之外的日志
|
AppLogLevel
|
Information
|
五、日志级别的动态修改
// 动态修改日志级别
var apiConfig = host.Services.GetRequiredService<WebApiConfig>();
apiConfig.AppLogLevel = Serilog.Events.LogEventLevel.Error;
六、本地文件日志配置
|
路径模板名
|
说明
|
|
DayFolderAndLoggerNameFile
|
以每天日期为目录,日志名称为文件名
|
|
DayFile
|
以每天日期为日志名称
|
|
LoggerNameAndDayFile
|
以[日志名称_每天日志]为日志文件名称
|
|
LevelFile
|
以日志级别缩写为日志文件名称
|
|
DayFolderAndLevelFile
|
以每天日期为目录,日志级别缩写为日志名称
|
七、容器化支持
// 要支持容器化EFK日志模式,一般只需要设置ConsoleJsonLog为true即可
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseExtensions(args, config=>
{
config.ConsoleJsonLog = true;
});
webBuilder.UseStartup<Startup>();
});
八、测试支持
IServiceCollection services = new ServiceCollection()
.AddExtensions()
.AddLogging(logBuilder =>
{
// 添加测试日志记录器
logBuilder.AddTestLogger();
}); IServiceProvider provider = services.BuildServiceProvider();
// 获取日志内容
var logContent = provider.GetTestLogContent();
九、禁用Serilog
ASP.NET Core扩展库之日志的更多相关文章
- Log4net 的 ASP.NET Core 扩展库
给大家安利一款 log4net 的 ASP.NET Core 扩展库,它是基于 log4net 开发的. 简单易用,开源免费,使用ASP.NET Core自身提供的DI容器来实现服务的注册和消费.直接 ...
- ASP.NET Core扩展库
亲爱的.Neter们,在我们日复一日的编码过程中是不是会遇到一些让人烦恼的事情: 日志配置太过复杂,各种模板.参数也搞不清楚,每次都要去查看日志库的文档,还需要复制粘贴一些重复代码,好无赖 当需要类型 ...
- ServiceStack.Redis 的 ASP.NET Core 扩展库
给大家安利一款 ServiceStack.Redis 的 ASP.NET Core 扩展库,它是基于 ServiceStack.Redis.Core 开发的. 简单易用,开源免费,使用ASP.NET ...
- ASP.NET Core扩展库之Http通用扩展
本文将介绍Xfrogcn.AspNetCore.Extensions扩展库对于Http相关的其他功能扩展,这些功能旨在处理一些常见需求, 包括请求缓冲.请求头传递.请求头日志范围.针对HttpClie ...
- ASP.NET Core扩展库之Http请求模拟
如今,完全独立的业务应用几乎不存在,不管是在企业内部微服务之间的调用,还是与外部第三方服务的调用,Http的API交互是常见的场景,这些实际情况给我们的开发带来了比较大的挑战,一是第三方服务可能会牵制 ...
- ASP.NET Core扩展库之实体映射
在分层设计模式中,各层之间的数据通常通过数据传输对象(DTO)来进行数据的传递,而大多数情况下,各层数据的定义结构大同小异,如何在这些定义结构中相互转换,之前我们通过使用AutoMapper库,但Au ...
- Asp.net core 使用log4net作为日志组件,记录日志到本地。
原文:Asp.net core 使用log4net作为日志组件,记录日志到本地. GitHub demo :https://github.com/zhanglilong23/Asp.NetCore.D ...
- ASP.NET MVC扩展库
很多同学都读过这篇文章吧 ASP.NET MVC中你必须知道的13个扩展点,今天给大家介绍一个ASP.NET MVC的扩展库,主要就是针对这些扩展点进行.这个项目的核心是IOC容器,包括Ninject ...
- Asp.net Core + Log4net + ELK 搭建日志中心
原文:Asp.net Core + Log4net + ELK 搭建日志中心 Docker中一键安装ELK 对于这种工具类的东西,第一步就直接到docker的hub中查找了,很幸运,不仅有Elasti ...
随机推荐
- CF1462-E2. Close Tuples (hard version)
本题为hard版,还有一个easy版,区别在于k和m的取值不同. 题意: 给出一个由n个数字组成的数组 \(a\).现在定义一种子集为\(\{A_1, A_2, A_3, ..., A_m\}\),使 ...
- K8S(14)监控实战-grafana出图_alert告警
k8s监控实战-grafana出图_alert告警 目录 k8s监控实战-grafana出图_alert告警 1 使用炫酷的grafana出图 1.1 部署grafana 1.1.1 准备镜像 1.1 ...
- Kubernets二进制安装(12)之部署Node节点服务的kube-Proxy
kube-proxy是Kubernetes的核心组件,部署在每个Node节点上,它是实现Kubernetes Service的通信与负载均衡机制的重要组件; kube-proxy负责为Pod创建代理服 ...
- Shpfile文件的字段类型说明
Shpfile文件的字段类型设置如下表所示: 字段类型 字符 字段长度 长整型 N 9 短整型 N 4 浮点型 F 13 双精度 F 19 文本 C 50 特别需要注意的是字段长度,在导出SHP的时候 ...
- java8按照lamda表达式去重一个list,根据list中的一个元素
/** * 按照指定字段给list去重 * @param list * @return */ public static List<DataModel> niqueList(List< ...
- Python Web Framework All In One
Python Web Framework All In One Django and Flask are the top Python web frameworks so far. Django ht ...
- npm fetch All In One
npm fetch All In One fetch for TypeScript { "compilerOptions": { "lib": ["D ...
- nasm astrchr函数 x86
xxx.asm: %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export as ...
- DeFi里的灰度?每月获得高收益?BGV代币初探
2020年已经接近了尾声,但是DeFi市场的热闹场面并没有停止,或者说,一直在延续.资本市场不断将大批的资金投入到DeFi市场中,以求在这波热潮中赚得一波又一波红利. 美国时间12月21日,Bacca ...
- 对Innodb中MVCC的理解
一.什么是MVCC MVCC (Multiversion Concurrency Control) 中文全程叫多版本并发控制,是现代数据库(如MySql)引擎实现中常用的处理读写冲突的手段,目的在于提 ...