在研究来源时,我在演员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 方法的对象。