0

Akka 2.1.4 と Logback が組み込まれた Play 2.1.1 を使用しています。event-handler は SLF4jLoggerEventHandler に設定されています。application-logger.xml を次のようにしたいと思います。

<logger name="actors.user.someActorParent" .. />

someActorParent とそのすべての子孫アクターの定義になります。

しかし、私が何をしても、ロガーはアクターのパスではなく、アクターのクラスによって決定されるようです。

http://doc.akka.io/docs/akka/2.1.4/scala/logging.htmlに従って 、Actor オブジェクトを指定すると、パスが「grandparent.parent.me」として返されるように LogSource を実装しました。 「akka://blah/blah」の代わりに」。これが実際に影響しているように見えるのは、akkaSource MDC 変数だけです。ロガーは、アクターのクラスのパッケージによって決定されます。

これは、akka.event.Logging.scala および Slf4jEventHandler.scala で見られるものと一致しています。

アクターのクラスが属するパッケージではなく、アクターのパスに基づいてロガーを定義できるように、Akka 2.1.4 で logback を構成するにはどうすればよいですか?

4

1 に答える 1

1

LogSource.getClazzメソッドが class を返す場合にのみ、logSource 文字列に基づいてロガーが選択されますakka.event.DummyClassForStringSources。既に書いているので、 show hereLogSourceのようにオーバーライドしてください。

それを決定するコードはここにあります。

于 2013-05-29T15:01:54.387 に答える