How do I make Akka aware of Play's logback config (application-logger.xml)?
In my case it is completely ignored:
The log is ONLY printed to stdout. I expect it to be logged to the File-Appender defined in application-logger.xml
It does not make a difference if I rename application-logger.xml to logback.xml.
Actor-class:
class Dispatcher extends Actor with ActorLogging {
// prints to stdout ONLY:
log.error("[akka-logger] dispatch started...")
}
conf/application.conf:
play {
akka {
#log-config-on-start = on
loggers = ["akka.event.slf4j.Slf4jLogger"]
event-handlers = ["akka.event.slf4j.Slf4jEventHandler"]
loglevel = DEBUG
# and so on...
}
conf/application-logger.xml
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${application.home}/logs/application.log</file>
<encoder>
<pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</ pattern>
</encoder>
</appender>
<!-- Using akka.event.slf4j.EventHandler does NOT make a difference here: -->
<logger name="akka.event.slf4j.Slf4jLogger" level="ERROR" additivity="false">
<appender-ref ref="FILE"/>
</logger>
<logger name="play" level="ERROR" additivity="false">
<appender-ref ref="FILE"/>
</logger>
<logger name="application" level="ERROR" additivity="false">
<appender-ref ref="FILE"/>
</logger>
<root level="ERROR">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
</root>
</configuration>