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
This commit is contained in:
Patrik Nordwall 2011-08-29 17:05:18 +02:00
parent c064aee89e
commit 40a887dcba
2 changed files with 18 additions and 8 deletions

View file

@ -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 {

View file

@ -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)
}
}