
.net core 日志作用域:解决不同请求之间的日志干扰
作用域的场景
- 一个事务包含多条操作时
- 复杂流程的日志关联时
- 调用链追踪域请求处理过程对应时
内容示例
项目架构
内容示例
Program.cs
class Program
{
static void Main(string[] args)
{
//必要的包
//从文件中读取配置
IConfigurationBuilder configBuilder = new ConfigurationBuilder();
configBuilder.AddCommandLine(args);
configBuilder.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
var config = configBuilder.Build();
IServiceCollection serviceCollection = new ServiceCollection();
//用工厂模式将配置对象注册到容器管理
serviceCollection.AddSingleton<IConfiguration>(p => config);
serviceCollection.AddLogging(builder =>
{
builder.AddConfiguration(config.GetSection("Logging"));
builder.AddConsole();
builder.AddDebug();
});
IServiceProvider service = serviceCollection.BuildServiceProvider();
//日志作用域
var logger = service.GetService<ILogger<Program>>();
while (Console.ReadKey().Key != ConsoleKey.Escape)
{
using (logger.BeginScope("ScopeId:{ScopeId}", Guid.NewGuid()))
{
logger.LogInformation("这是Info");
logger.LogError("这是Error");
logger.LogTrace("这是Trace");
}
System.Threading.Thread.Sleep(100);
Console.WriteLine("=====================分割线=====================");
}
Console.ReadKey();
}
}
appsetting.json
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
},
//下面是针对 Console 的输出提供程序
"Console": {
"IncludeScopes": true,
"LogLevel": {
"Default": "Information",
"LoggingSimpleDemo.Program": "Trace",
"alogger": "Trace"
}
}
}
}
运行结果(中途有经多次修改)
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
排名
6
文章
6
粉丝
16
评论
8
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 :
好是好,这个对效率影响大不大哇,效率高不高
一个bug让程序员走上法庭 索赔金额达400亿日元
剑轩 : 有点可怕
ASP.NET Core 服务注册生命周期
剑轩 :
http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术