組み込みのロギング メカニズムを使用して、ServiceStack のすべての API 呼び出しをログに記録しています。ログ呼び出しを傍受し、データをスクラブしてから保存してパスワードなどを取り除く方法があるかどうか疑問に思っています。
質問する
157 次
1 に答える
3
現在構成されているロガーへのプロキシのように機能する独自のアダプターILogFactory
とクラスを実装することができます。ILog
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 は、すべてのロギング呼び出しをインターセプトする別のアダプター クラスであり、基になるロガーに委譲する前に、必要なことを行う (つまり、ロギング情報をスクラブする) ことができます。
于 2013-06-21T20:57:06.837 に答える