의 특징은 ActorLogging
과 DiagnosticActorLogging
의 차이점은 무엇이며 언제 다른 하나를 선호해야합니까? docs의 간략한 설명은 많은 안내를 제공하지 않습니다.Akka에서 ActorLogging 특성 대신 DiagnosticActorLogging을 사용하는 경우?
/**
* Scala API: Mix in DiagnosticActorLogging into your Actor to easily obtain a reference to a logger with MDC support,
* which is available under the name "log".
* In the example bellow "the one who knocks" will be available under the key "iam" for using it in the logback pattern.
*
* {{{
* class MyActor extends Actor with DiagnosticActorLogging {
*
* override def mdc(currentMessage: Any): MDC = {
* Map("iam", "the one who knocks")
* }
*
* def receive = {
* case "pigdog" => log.info("We've got yet another pigdog on our hands")
* }
* }
* }}}
*/
trait DiagnosticActorLogging extends Actor {
import akka.event.Logging._
val log = akka.event.Logging(this)
def mdc(currentMessage: Any): MDC = emptyMDC
override protected[akka] def aroundReceive(receive: Actor.Receive, msg: Any): Unit = try {
log.mdc(mdc(msg))
super.aroundReceive(receive, msg)
} finally {
log.clearMDC()
}
}
기본적으로는 암시 적으로 모든 혼란없이 배우의 모든 로깅 호출에 로깅 데이터의 일부 공유 조각을 연결할 수 있습니다 : 그것을 알아낼