servicestack,Logging,servicestack" /> servicestack,Logging,servicestack" />

Logging ServiceStack日志清理

Logging ServiceStack日志清理,logging,servicestack,Logging,servicestack,我正在通过内置日志机制记录ServiceStack中的所有API调用。我想知道是否有某种方法可以拦截日志调用并在保存数据之前清除数据,以去除密码之类的东西。您可以实现自己的适配器ILogFactory和ILog类,这些类充当当前配置的日志程序的代理,例如: LogManager.LogFactory = new ScrubberLogFactory(LogManager.LogFactory); ScruberLogFactory将只是一个包装器,并将调用委托给真正的LogFactory,例如

我正在通过内置日志机制记录ServiceStack中的所有API调用。我想知道是否有某种方法可以拦截日志调用并在保存数据之前清除数据,以去除密码之类的东西。

您可以实现自己的适配器
ILogFactory
ILog
类,这些类充当当前配置的日志程序的代理,例如:

LogManager.LogFactory = new ScrubberLogFactory(LogManager.LogFactory);
ScruberLogFactory将只是一个包装器,并将调用委托给真正的LogFactory,例如:

class ScrubberLogFactory : ILogFactory
{
  ILogFactory logFactory;

  public ScrubberLogFactory(ILogFactory logFactory)
  {
    this.logFactory = logFactory;
  }

  public ILog GetLogger(Type type)
  {
    return new ScrubLogger(logfactory.GetLogger(type));
  }

  public ILog GetLogger(string typeName)
  {
    return new ScrubLogger(logfactory.GetLogger(typeName));
  }
}
ScrubLogger是另一个适配器类,它截取所有日志调用,然后在将其委托给底层日志记录器之前,您可以执行所需的操作(即清除日志信息)