Serilog接收ASPNET核心记录
我想要的是能够使用Serilog和Microsoft.Extensions.Logging(ILogger)来检测我的代码.并让它们都配置相同,以便它们写入相同的“接收器”.我有一个ASPNET核心应用程序与日志工作和一些依赖库,使用Serilog,我想捕获日志输出(与ASPNET核心应用程序相同的地方).
我知道有一个nuget包可以使用ASPIL Core应用程序进行Serilog日志记录.但是,这个特殊的扩展 (WebAppBuilder).UseSerilog() 似乎用serilog版本完全替换现有的ILoggerFactory,这会阻止我的ASPNET日志记录工作.如果我可以简单地插入serilog配置,使其像原始ASPNET核心机制一样工作,那就没问题.但是,Serilog.Settings.Configuration似乎没有忠实地将配置复制到Serilog. 令我困扰的是,他们不能共享共享配置,如果我使用其他使用NLog的库,如何将其集成到同一个日志记录基础架构中呢? Serilog可以配置为与Microsoft.Extensions.Logging相同吗?如果是这样,这是如何实现的? 解决方法
在Program.cs中你将拥有它(在你加载IConfigurationRoot之后):
Log.Logger = new LoggerConfiguration() .ReadFrom.Configuration(configuration) .WriteTo.Console() .CreateLogger(); 这会设置一个默认的“控制台”接收器以及您在appsettings.json配置文件中设置的任何其他内容. 在你的appsettings.json中你可能有这个,例如: { "Serilog": { "MinimumLevel": { "Default": "Information","Override": { "Microsoft": "Warning","System": "Error" } },"WriteTo": [{ "Name": "Seq","Args": { "serverUrl": "http://localhost:5341" } }],"Enrich": ["FromLogContext"],"Properties": { "Application": "MyApplication" } } } 现在你可以写入静态Serilog.Log: Log.Information("JSON example {@Json}",json); 或者注入Microsoft.Extensions.Logging.ILogger: logger.LogInformation("JSON example {@Json}",json); 并且两者都将写入配置的接收器. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.net MVC:在RenderAction中获
- asp.net-mvc-3 – MVC 3 – 其他视图数据未出现在
- asp.net-mvc-routing – 如何检查给定路径是否存
- asp.net – 无法加载文件或程序集“Microsoft.Te
- asp.net-mvc – ASP.NET MVC:默认页面上的Autho
- ASP.NET会话Cookie – 指定基础域
- asp.net – 无法打开与SQL Server的连接
- asp.net mvc 依赖注入Ninject
- Asp.Net 5核心1.0不兼容/模板未找到
- asp.net-mvc – ASP.NET MVC – 查看多个模型