私はカスタムロガーを持って、私は私のカスタムロガーにプロパティを設定し、メッセージをログに記録する際に、そのコンテキストをログに記録することができますコントローラのILoggerからカスタムILogger実装を取得するにはどうすればよいですか?
SetContext(uniqueKey, object)
と呼ばれる拡張メソッドを作成したいと思います。
ので、コードはこの
_logger
.SetContext(User.Email(), User)
.LogError(1, new Exception("foo foo foo"), "bleep Bloop");
ようになり、私が直面しているように見える問題はILoggerですが、私のコントローラでDIを介して返され、私の拡張メソッドで使用される順番に実際に私の習慣ではないということですILoggerの実装。
public static ILogger SetContext(this ILogger logger, string uniqueUserIdentifier, object context)
{
var redisPublisherLogger = logger as RedisPublisherLogger;
if (redisPublisherLogger == null)
{
return logger;
}
redisPublisherLogger.Context = new LoggingContext
{
ContextData = context,
UniqueUserIdentifier = uniqueUserIdentifier
};
return logger;
}
とにかく私はILoggerです上のすべてのログメソッドをオーバーライド避けるためにしようとしている、このような何かをやって行くことができますがあります。
助けていただけたら幸いです! おかげ
感謝していたが、それは内部にあるので、私はそれを使用することはできません。私は、BeginScopeを使って、ログにコンテキストを追加するので忙しいです。 – Lyon