我有两个带有 Serilog 的记录器,它们保存到不同的文件。我想通过 appsettings.json 而不是代码创建记录器。
当我通过Startup.cs配置创建记录器时,我会得到更具体的日志,我更喜欢这种方式,因为它更清晰,并且允许其他人检查日志并了解正在发生的情况,而无需太多的技术知识。但是,我想将其应用于应用程序设置,以便我可以将代码迁移到我可能使用的任何其他项目。
仅供参考:我不想覆盖日志级别。
例如,我使用代码创建记录器,如下所示:
Log.Logger = new LoggerConfiguration()
.WriteTo.ColoredConsole()
.WriteTo.Logger(lc => lc
.Filter.ByExcluding(Matching.FromSource("Microsoft"))
.WriteTo.File("Serilogs/Program_log_.txt", rollingInterval: RollingInterval.Day)
.MinimumLevel.Information()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information))
.WriteTo.Logger(lc => lc
.Filter.ByIncludingOnly(Matching.FromSource("Microsoft"))
.WriteTo.File("Serilogs/ServerTrace_log_.txt", rollingInterval: RollingInterval.Day)
.MinimumLevel.Information()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information))
.CreateLogger();
Run Code Online (Sandbox Code Playgroud)
这会生成两个单独的输出,我喜欢它们的格式::
File 1可读的自定义日志:
2019-01-18 11:18:09.873 +00:00 [INF] //Some custom log information
2019-01-18 11:18:09.875 +00:00 [INF] //Some more custom log information
Run Code Online (Sandbox Code Playgroud)
File 2:堆栈跟踪,服务器信息:
2019-01-18 11:17:56.378 +00:00 [INF] User profile is available. Using '//A path' as key repository and Windows DPAPI to encrypt keys …Run Code Online (Sandbox Code Playgroud)