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 ...
随机推荐
- ef实现左关联查询
在EF中,当在dbset使用join关联多表查询时,连接查询的表如果没有建立相应的外键关系时,EF生成的SQL语句是inner join(内联),对于inner join,有所了解的同学都知道,很多时 ...
- .NET中使用DebuggerDisplay轻松定制调试
前言 对于调试的方式有多种,不过在今天我们将看到的监视窗口对变量的监视,当然在这里我们是定制内部的变量值,或者说变量的显示与计算的内容. 注:监视窗口在调试时可以一次显示多个变量."快速监视 ...
- 抓包 127.0.0.1 (loopback) 使用 tcpdump+wireshark
直接使用 wireshark无法抓取 127.0.0.1环回的数据包,一种解决方法是先传到路由器再返回,但这样可能造成拥塞. Linux 先使用tcpdump抓包并输出为二进制文件,然后wiresha ...
- Socket 编程简介
Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯. 本章节我们为大家接收 Perl ...
- HDU 6390 GuGuFishtion(莫比乌斯反演 + 欧拉函数性质 + 积性函数)题解
题意: 给定\(n,m,p\),求 \[\sum_{a=1}^n\sum_{b=1}^m\frac{\varphi(ab)}{\varphi(a)\varphi(b)}\mod p \] 思路: 由欧 ...
- 用python写的一个自动卸载python包的脚本
import osplist=os.popen("pip list") # 执行windows cmd命令,获取所有包package列表,并获取返回结果到plist#跳过第1,2行 ...
- 深入理解JavaScript垃圾回收
JavaScript中的垃圾回收是自动进行的,在平常开发中我们可能并不在意,但是深入理解JavaScript中的垃圾回收却是必要的; JavaScript 中主要的内存管理概念是 可达性,简而言之就是 ...
- Vue3(四)从jQuery 转到 Vue工程化 的捷径
不会 webpack 还想学 vue 工程化开发 的福音 熟悉jQuery开发的,学习vue的简单使用是没用啥问题的,但是学习vue的工程化开发方式,往往会遇到各种问题,比如: webpack.nod ...
- iPhone 如何查看 Wi-Fi 密码
iPhone 如何查看 Wi-Fi 密码 shit, 需要安装第三方软件 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问! 原创文 ...
- 2020 Google 开发者大会
2020 Google 开发者大会 Google Developer Summit https://developersummit.googlecnapps.cn/ Flutter | Web | M ...