在研究来源时,我在演员akka
中发现了以下内容:akka.event.slf4j.SLF4JLogger
def receive = {
//...
case event @ Warning(logSource, logClass, message) ⇒
withMdc(logSource, event) { Logger(logClass, logSource).warn("{}", message.asInstanceOf[AnyRef]) }
case event @ Info(logSource, logClass, message) ⇒
withMdc(logSource, event) { Logger(logClass, logSource).info("{}", message.asInstanceOf[AnyRef]) }
case event @ Debug(logSource, logClass, message) ⇒
withMdc(logSource, event) { Logger(logClass, logSource).debug("{}", message.asInstanceOf[AnyRef]) }
//...
}
我不太明白这个@
标志是什么。它不是一种方法,也没有event
范围内的声明。Warning
,Info
并且Debug
都是具有 apply 方法的对象。