2013-06-21 1 views
3

빌드 로깅 메커니즘을 통해 ServiceStack에서 모든 API 호출을 로깅합니다. 로그 호출을 가로 채고 비밀번호와 같은 항목을 제거하기 위해 데이터를 저장하기 전에 데이터를 삭제하는 방법이 있는지 궁금합니다.ServiceStack 로그 스크 러빙

답변

3

그냥 예를 들어, 현재 설정되어있는 로거에 대한 프록시와 같은 역할을 자신의 어댑터 ILogFactoryILog 클래스를 구현할 수 :

LogManager.LogFactory = new ScrubberLogFactory(LogManager.LogFactory); 

ScrubberLogFactory 단지 것 래퍼 위임 호출 실제 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는 기본 로거에 위임하기 전에 다음 (즉, 로깅 정보를 문질러) 필요 할 수있는 모든 로깅 호출을 가로 채고 다른 어댑터 클래스입니다 .

+0

다른 누구의 답변도 옳다고 생각하지 않습니다. – poindexter12