C# 如何使用Sustainsys.Saml2设置NLog
我有一个ASP.NETWebForms应用程序,我刚刚在其中集成了库 我从来没有使用过任何类型的日志记录机制,我正试图找出如何为他们页面上声明的库添加或创建C# 如何使用Sustainsys.Saml2设置NLog,c#,nlog,sustainsys-saml2,C#,Nlog,Sustainsys Saml2,我有一个ASP.NETWebForms应用程序,我刚刚在其中集成了库 我从来没有使用过任何类型的日志记录机制,我正试图找出如何为他们页面上声明的库添加或创建ILoggerAdapter 我已经决定使用NLog(请随意推荐另一个),或者我不太了解这一点,或者没有使用正确的关键字来搜索我需要/想要的内容,或者他们没有太多关于它的文档 目前,我正在使用HttpModule版本的Sustainsys.Saml2。根据要求提供的任何其他信息 任何帮助都会很好 目前,我正在通过web.config和glob
ILoggerAdapter
我已经决定使用NLog(请随意推荐另一个),或者我不太了解这一点,或者没有使用正确的关键字来搜索我需要/想要的内容,或者他们没有太多关于它的文档
目前,我正在使用HttpModule
版本的Sustainsys.Saml2
。根据要求提供的任何其他信息
任何帮助都会很好
目前,我正在通过web.config和global.asax文件配置Sustainsys.Saml2
库。下面是my global.asax调用的类:
public class Saml2Config {
private static bool _alreadyInitialized;
private static readonly object Lock = new object();
public static void Initialize() {
if (_alreadyInitialized) {
return;
}
lock (Lock) {
if (_alreadyInitialized) {
return;
}
var domain = PageHelper.GetDomainURL(true);
Sustainsys.Saml2.Configuration.Options.FromConfiguration.SPOptions.EntityId.Id = $"{domain}/federation/Saml2";
Sustainsys.Saml2.Configuration.Options.FromConfiguration.SPOptions.ModulePath = "/federation/Saml2";
Sustainsys.Saml2.Configuration.Options.FromConfiguration.SPOptions.ReturnUrl = new Uri($"{domain}/mybarry");
Sustainsys.Saml2.Configuration.Options.FromConfiguration.SPOptions.PublicOrigin = new Uri($"{domain}");
Sustainsys.Saml2.Configuration.Options.FromConfiguration.SPOptions.Logger = new NullLoggerAdapter();
_alreadyInitialized = true;
}
}
}
ILoggerAdapter
包含用于不同日志级别的方法。创建一个适配器类,该类实现ILoggerAdapter
并写入NLog。然后将SPOptions.Logger
设置为适配器类的实例
如果需要示例,可以查看Asp.Net Core适配器,该适配器记录到Asp.Net Core日志记录系统,并且是Sustainsys.Saml2.AspNetCore2
包的默认适配器:
对于
Sustainsys.Saml2.HttpModule
库,默认值是NullLoggerAdapter
,它只会丢弃任何日志。使用它的唯一原因是不必在使用它的任何地方都检查Logger属性(该代码是在引入?。
语法之前编写的)。iLogger适配器包含用于不同日志级别的方法。创建一个适配器类,该类实现ILoggerAdapter
并写入NLog。然后将SPOptions.Logger
设置为适配器类的实例
如果需要示例,可以查看Asp.Net Core适配器,该适配器记录到Asp.Net Core日志记录系统,并且是Sustainsys.Saml2.AspNetCore2
包的默认适配器:
对于Sustainsys.Saml2.HttpModule
库,默认值是NullLoggerAdapter
,它只会丢弃任何日志。使用它的唯一原因是不必在使用它的任何地方都检查Logger属性(该代码是在引入语法之前编写的)。非常简单
公共接口适配器
{
无效写信息(字符串消息);
void WriteError(字符串消息,异常ex);
void WriteVerbose(字符串消息);
}
我将按以下方式实施:
公共类NLogAdapter:ILOGGER适配器
{
私有静态记录器Logger=LogManager.GetLogger(“Saml2”);
公共无效写信息(字符串消息)
{
Logger.Info(消息);
}
public void WriteError(字符串消息,异常示例)
{
记录器错误(例如,消息);
}
public void WriteVerbose(字符串消息)
{
调试(消息);
}
}
最后确定:
Sustainsys.Saml2.Configuration.Options.FromConfiguration.SPOptions.Logger=new NLogAdapter();
非常简单
公共接口适配器
{
无效写信息(字符串消息);
void WriteError(字符串消息,异常ex);
void WriteVerbose(字符串消息);
}
我将按以下方式实施:
公共类NLogAdapter:ILOGGER适配器
{
私有静态记录器Logger=LogManager.GetLogger(“Saml2”);
公共无效写信息(字符串消息)
{
Logger.Info(消息);
}
public void WriteError(字符串消息,异常示例)
{
记录器错误(例如,消息);
}
public void WriteVerbose(字符串消息)
{
调试(消息);
}
}
最后确定:
Sustainsys.Saml2.Configuration.Options.FromConfiguration.SPOptions.Logger=new NLogAdapter();
Sustainsys.Saml2.Configuration.Options.FromConfiguration.SPOptions.Logger的类型是什么?有它的API文档吗?@Julian它是一个ILoggerAdapter
。我没有看到任何关于它的文档。Sustainsys.Saml2.Configuration.Options.FromConfiguration.SPOptions.Logger的类型是什么?有它的API文档吗?@Julian它是一个ILoggerAdapter
。我没有看到任何关于它的文件。谢谢!我将尝试一下(需要看看为什么它不会触发对IDP的注销)。触发联合注销的逻辑相当复杂。有一条记录所有条件的日志消息,因此记录器肯定会有所帮助。谢谢,成功了。所有的值在需求日志中都是空白的,所以我需要做一些计算。虽然我按照你的指示做了,但我会相信下一个答案,因为它更容易让别人看到。希望我能同时标记这两个。嗨,我贴了一个后续问题:谢谢!我将尝试一下(需要看看为什么它不会触发对IDP的注销)。触发联合注销的逻辑相当复杂。有一条记录所有条件的日志消息,因此记录器肯定会有所帮助。谢谢,成功了。所有的值在需求日志中都是空白的,所以我需要做一些计算。虽然我按照你的指示做了,但我会相信下一个答案,因为它更容易让别人看到。希望我能同时标记这两个。嗨,我贴了一个后续问题:谢谢!这也奏效了。虽然我对上一个答案进行了修改,但因为你给出了一个完整的工作示例,我会将其标记为答案,以便其他人更容易理解。谢谢!这也奏效了。虽然我对上一个答案进行了修改,因为你给出了一个完整的工作示例,我会将其标记为答案,以便其他人更容易理解。