Rename event-handlers to loggers, see #2979

* Rename config akka.event-handlers to akka.loggers
* Rename config akka.event-handler-startup-timeout to
  akka.logger-startup-timeout
* Rename JulEventHandler to JavaLogger
* Rename Slf4jEventHandler to Slf4jLogger
* Change all places in tests and docs
* Deprecation, old still works, but with warnings
* Migration guide
* Test for the deprecated event-handler config
This commit is contained in:
Patrik Nordwall 2013-02-01 08:02:53 +01:00
parent c6f08fb935
commit 2476831705
37 changed files with 347 additions and 216 deletions

View file

@ -0,0 +1,76 @@
package akka.contrib.jul
import com.typesafe.config.ConfigFactory
import akka.actor.{ ActorSystem, Actor, ActorLogging, Props }
import akka.testkit.AkkaSpec
import java.util.logging
import java.io.ByteArrayInputStream
object JavaLoggerSpec {
val config = ConfigFactory.parseString("""
akka {
loglevel = INFO
loggers = ["akka.contrib.jul.JavaLogger"]
}""")
class LogProducer extends Actor with ActorLogging {
def receive = {
case e: Exception
log.error(e, e.getMessage)
case (s: String, x: Int)
log.info(s, x)
}
}
}
@org.junit.runner.RunWith(classOf[org.scalatest.junit.JUnitRunner])
class JavaLoggerSpec extends AkkaSpec(JavaLoggerSpec.config) {
val logger = logging.Logger.getLogger("akka://JavaLoggerSpec/user/log")
logger.setUseParentHandlers(false) // turn off output of test LogRecords
logger.addHandler(new logging.Handler {
def publish(record: logging.LogRecord) {
testActor ! record
}
def flush() {}
def close() {}
})
val producer = system.actorOf(Props[JavaLoggerSpec.LogProducer], name = "log")
"JavaLogger" must {
"log error with stackTrace" in {
producer ! new RuntimeException("Simulated error")
val record = expectMsgType[logging.LogRecord]
record must not be (null)
record.getMillis must not be (0)
record.getThreadID must not be (0)
record.getLevel must be(logging.Level.SEVERE)
record.getMessage must be("Simulated error")
record.getThrown.isInstanceOf[RuntimeException] must be(true)
record.getSourceClassName must be(classOf[JavaLoggerSpec.LogProducer].getName)
record.getSourceMethodName must be(null)
}
"log info without stackTrace" in {
producer ! ("{} is the magic number", 3)
val record = expectMsgType[logging.LogRecord]
record must not be (null)
record.getMillis must not be (0)
record.getThreadID must not be (0)
record.getLevel must be(logging.Level.INFO)
record.getMessage must be("3 is the magic number")
record.getThrown must be(null)
record.getSourceClassName must be(classOf[JavaLoggerSpec.LogProducer].getName)
record.getSourceMethodName must be(null)
}
}
}