要给出Akka Typed日志示例,您可以按照以下步骤进行操作:
libraryDependencies += "com.typesafe.akka" %% "akka-actor-typed" % "2.6.15"
import akka.actor.typed.scaladsl.Behaviors
import akka.actor.typed.{ActorSystem, Behavior}
import akka.actor.typed.scaladsl.LoggerOps
object MyActor {
sealed trait Command
case object Start extends Command
case class Message(msg: String) extends Command
def apply(): Behavior[Command] = {
Behaviors.receive { (context, message) =>
message match {
case Start =>
context.log.info("Actor started")
Behaviors.same
case Message(msg) =>
context.log.info("Received message: {}", msg)
Behaviors.same
}
}
}
}
object Main {
def main(args: Array[String]): Unit = {
val system = ActorSystem(MyActor(), "my-actor-system")
system ! MyActor.Start
system ! MyActor.Message("Hello")
system.terminate()
}
}
在上面的示例中,MyActor
是一个Akka Typed Actor,它有两个命令:Start
和Message
。在apply
方法中,我们使用Behaviors.receive
来定义Actor的行为。在这个例子中,我们使用context.log
来记录日志。
Main
对象的main
方法,您将看到如下输出:[my-actor-system-akka.actor.default-dispatcher-4] INFO akka.actor.typed.Behavior$ - Actor started
[my-actor-system-akka.actor.default-dispatcher-4] INFO akka.actor.typed.Behavior$ - Received message: Hello
在上面的输出中,[my-actor-system-akka.actor.default-dispatcher-4]
是Actor的路径和调度器的名称,INFO
表示这是一个信息级别的日志,后面是日志消息。
这就是一个简单的Akka Typed日志示例。您可以根据自己的需求自定义日志级别和消息。