SAML debug trace may be enabled to assist with tracking down issues. The standard
ASP.NET Core logging API is used. In our examples, we make use of Serilog. However, any logging provider may be used to capture the logging information.
Regardless of the logging provider used, the "
Debug" level must be specified for "
ComponentSpace".
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information",
"ComponentSpace": "Debug"
}
}
However, it's not recommended to enable SAML debug trace in production environments, unless for problem determination, as it may impact performance.
SerilogThe following is an example Serilog configuration in appsettings.json. Logs are written to a "logs" folder under the application's root folder.
"Serilog": {
"MinimumLevel": {
"Default": "Warning",
"Override": {
"ComponentSpace": "Debug"
}
},
"WriteTo": [
{
"Name": "Debug"
},
{
"Name": "Async",
"Args": {
"configure": [
{
"Name": "File",
"Args": {
"path": "logs/saml-.log",
"rollingInterval": "Day",
"retainedFileCountLimit": 7,
"buffered": true,
"flushToDiskInterval": "00:00:01"
}
}
]
}
}
]
}
To support Serilog and the above configuration, the following NuGet packages must be included in the application.
Serilog.AspNetCore
Serilog.Sinks.Async
Serilog.Sinks.File
The following example CreateWebHostBuilder method in the Program class removes the default logging providers and adds the Serilog provider.
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureLogging(configureLogging => configureLogging.ClearProviders())
.UseSerilog((webHostBuilderContext, loggerConfiguration) =>
loggerConfiguration.ReadFrom.Configuration(webHostBuilderContext.Configuration))
.UseStartup<Startup>();
Log4NetThe following is an example Log4Net configuration in log4net.config. Logs are written to a "logs" folder under the application's root folder.
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logs/" />
<datePattern value="'saml'-yyyyMMdd.'log'"/>
<staticLogFileName value="false"/>
<appendToFile value="true" />
<rollingStyle value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %5level %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
To support Log4Net and the above configuration, the following NuGet packages must be included in the application.
Microsoft.Extensions.Logging.Log4Net.AspNetCore
The following example CreateWebHostBuilder method in the Program class removes the default logging providers and adds the Log4Net provider.
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureLogging(configureLogging => configureLogging.ClearProviders());
webBuilder.UseStartup<Startup>();
}).ConfigureLogging(builder =>
{
builder.SetMinimumLevel(LogLevel.Debug);
builder.AddLog4Net("log4net.config");
});
Regards
ComponentSpace Development