2013-05-29 30 views
0

我使用Play 2.1.1與Akka 2.1.4和Logback烘烤英寸事件處理程序設置爲SLF4jLoggerEventHandler。我想我的應用程序logger.xml看起來像這樣:基於Akka演員的路徑確定記錄器*不* *演員的類(Logback,Akka 2.1.4)

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

如果這將是一個someActorParent定義和它的所有後代演員。

但是,無論我做什麼,記錄器似乎都由Actor的類決定,而不是演員的路徑。

正在關注http://doc.akka.io/docs/akka/2.1.4/scala/logging.html我以一種方式實現LogSource,給定一個Actor對象,它將返回路徑爲「grandparent.parent.me」而不是「akka:// blah/blah」。所有這些似乎都起作用的是akkaSource MDC變量。記錄器仍然由演員的課程包決定。

這與我在akka.event.Logging.scala和Slf4jEventHandler.scala中看到的一致。

如何使用Akka 2.1.4配置logback,以便我可以根據Actor路徑定義記錄器,否則Actor的類所屬的包?

回答

1

只有在LogSource.getClazz方法返回類akka.event.DummyClassForStringSources時,纔會根據logSource字符串選擇記錄器。既然你已經寫好你的LogSource,只需重寫,如show here

決定它的代碼可以找到here

+0

完美...我不知道我是如何錯過了這一點。整個過程中,我的問題始終在困擾着我。重新實現了LogSource :: getClazz,一切都在順利進行。 – FullTimeCoderPartTimeSysAdmin