我是 Serilog 新手,一直在尝试一些代码来使用基于 GitHub 包的应用程序设置 Json 文件来配置 Serilog (https://github.com/serilog/serilog-settings-configuration)。
我有一个 .NET 7.0 控制台应用程序。我添加了以下 NuGet 包。
appsettings.json的内容是
{
"Appsettings": {
"client_id": "",
"client_secret": ""
},
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
"MinimumLevel": "Debug",
"WriteTo": [
{ "Name": "Console" },
{
"Name": "File",
"Args": { "path": "Logs/log.txt" }
}
],
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
"Destructure": [
{
"Name": "With",
"Args": { "policy": "Sample.CustomPolicy, Sample" }
},
{
"Name": "ToMaximumDepth",
"Args": { "maximumDestructuringDepth": 4 }
},
{
"Name": "ToMaximumStringLength",
"Args": { "maximumStringLength": 100 }
},
{
"Name": "ToMaximumCollectionCount",
"Args": { "maximumCollectionCount": 10 }
}
]
}
}
在 Program.cs Main 函数中,代码是
var ConfigBuilder = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
var logger = new LoggerConfiguration().ReadFrom.Configuration(ConfigBuilder).CreateLogger();
代码语句
var logger = LoggerConfiguration().ReadFrom.Configuration(ConfigBuilder).CreateLogger()
给出了异常
System.InvalidOperationException
HResult=0x80131509
Message=Type Sample.CustomPolicy, Sample was not found.
Source=Serilog.Settings.Configuration
StackTrace:
at Serilog.Settings.Configuration.StringArgumentValue.ConvertTo(Type toType, ResolutionContext resolutionContext)
at Serilog.Settings.Configuration.ConfigurationReader.<>c__DisplayClass22_2.<CallConfigurationMethods>b__3(<>f__AnonymousType9`2 <>h__TransparentIdentifier0)
at System.Linq.Enumerable.SelectListPartitionIterator`2.ToList()
at Serilog.Settings.Configuration.ConfigurationReader.CallConfigurationMethods(ILookup`2 methods, IReadOnlyCollection`1 configurationMethods, Object receiver)
at Serilog.Settings.Configuration.ConfigurationReader.ApplyDestructuring(LoggerConfiguration loggerConfiguration)
at Serilog.Settings.Configuration.ConfigurationReader.Configure(LoggerConfiguration loggerConfiguration)
at Serilog.Configuration.LoggerSettingsConfiguration.Settings(ILoggerSettings settings)
at Serilog.ConfigurationLoggerConfigurationExtensions.Configuration(LoggerSettingsConfiguration settingConfiguration, IConfiguration configuration, ConfigurationReaderOptions readerOptions)
at TestConsoleApp.Program.Main(String[] args) in C:\Development\sdiServiceFramework\TestConsoleApp\Program.cs:line 46
不确定我错过了什么或做错了什么。任何帮助将不胜感激。
问候 席德
{
"Name": "With",
"Args": { "policy": "Sample.CustomPolicy, Sample" }
},
这部分来自示例。只需将其删除即可。