From 40a887dcba3bce6ffaa831561671da32caa978f0 Mon Sep 17 00:00:00 2001 From: Patrik Nordwall Date: Mon, 29 Aug 2011 17:05:18 +0200 Subject: [PATCH] Use ActorRef.address as SL4FJ logger name. Fixes #1153 * The address might not be perfect, since it is an uuid by default, but it's better than static akka.actor.LocalActorRef * Similar fix in StandardOutLogger --- .../src/main/scala/akka/event/EventHandler.scala | 13 +++++++++---- .../src/main/scala/akka/event/slf4j/SLF4J.scala | 13 +++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/akka-actor/src/main/scala/akka/event/EventHandler.scala b/akka-actor/src/main/scala/akka/event/EventHandler.scala index 5c0808d457..6f17b20530 100644 --- a/akka-actor/src/main/scala/akka/event/EventHandler.scala +++ b/akka-actor/src/main/scala/akka/event/EventHandler.scala @@ -242,7 +242,7 @@ object EventHandler extends ListenerManagement { println(errorFormat.format( timestamp, event.thread.getName, - event.instance.getClass.getSimpleName, + instanceName(event.instance), event.message, stackTraceFor(event.cause))) @@ -250,25 +250,30 @@ object EventHandler extends ListenerManagement { println(warningFormat.format( timestamp, event.thread.getName, - event.instance.getClass.getSimpleName, + instanceName(event.instance), event.message)) def info(event: Info) = println(infoFormat.format( timestamp, event.thread.getName, - event.instance.getClass.getSimpleName, + instanceName(event.instance), event.message)) def debug(event: Debug) = println(debugFormat.format( timestamp, event.thread.getName, - event.instance.getClass.getSimpleName, + instanceName(event.instance), event.message)) def generic(event: Any) = println(genericFormat.format(timestamp, event.toString)) + + def instanceName(instance: AnyRef): String = instance match { + case a: ActorRef ⇒ a.address + case _ ⇒ instance.getClass.getSimpleName + } } class DefaultListener extends Actor with StandardOutLogger { diff --git a/akka-slf4j/src/main/scala/akka/event/slf4j/SLF4J.scala b/akka-slf4j/src/main/scala/akka/event/slf4j/SLF4J.scala index b75f636e5f..41d215bde6 100644 --- a/akka-slf4j/src/main/scala/akka/event/slf4j/SLF4J.scala +++ b/akka-slf4j/src/main/scala/akka/event/slf4j/SLF4J.scala @@ -36,14 +36,19 @@ class Slf4jEventHandler extends Actor with Logging { def receive = { case Error(cause, instance, message) ⇒ - Logger(instance.getClass.getName).error(String.valueOf(message), cause) + logger(instance).error(String.valueOf(message), cause) case Warning(instance, message) ⇒ - Logger(instance.getClass.getName).warn(String.valueOf(message)) + logger(instance).warn(String.valueOf(message)) case Info(instance, message) ⇒ - Logger(instance.getClass.getName).info(String.valueOf(message)) + logger(instance).info(String.valueOf(message)) case Debug(instance, message) ⇒ - Logger(instance.getClass.getName).debug(String.valueOf(message)) + logger(instance).debug(String.valueOf(message)) case event ⇒ log.debug("[{}]", event.toString) } + + def logger(instance: AnyRef): SLFLogger = instance match { + case a: ActorRef ⇒ Logger(a.address) + case _ ⇒ Logger(instance.getClass) + } }