Reputation: 333
I am new to Serilog and have been trying out some code to configure Serilog using an App settings Json file based on GitHub package(https://github.com/serilog/serilog-settings-configuration).
I have a .NET 7.0 console application. I have added the following NuGet packages.
The content of the appsettings.json is
{
"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 }
}
]
}
}
In the Program.cs Main function the code is
var ConfigBuilder = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
var logger = new LoggerConfiguration().ReadFrom.Configuration(ConfigBuilder).CreateLogger();
The code statement var logger = LoggerConfiguration().ReadFrom.Configuration(ConfigBuilder).CreateLogger()
gives an exception
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
Not sure what i am missing or doing wrong. Any help would be appreciated.
Regards Sid
Upvotes: 2
Views: 1189
Reputation: 4417
{
"Name": "With",
"Args": { "policy": "Sample.CustomPolicy, Sample" }
},
This part is from the example. Just remove it.
Upvotes: 3