Я на Scala 2.10.2 и Акку 2.2 и имеет следующий тестAkka не показывает выход журнала
import org.junit._
import Assert._
import scala.util.{Failure, Success}
import net.liftweb.json._
import akka.actor.ActorSystem
import akka.event.Logging
class AppTest {
implicit val system = ActorSystem("annotator-common")
import system.dispatcher // execution context for futures below
val log = Logging(system, getClass)
@Test
def testHttp() = {
import scala.concurrent.ExecutionContext
val respBody = AsyncHttpProvider.getResponseBodyAsJValue("http://some-json-api-url")
respBody onComplete {
case Success(contents) => {
val x = contents \\ "self"
log.info(x.toString)
}
case Failure(error) => log.error(error.toString)
}
Thread.sleep(2000) //adding this allows the future to complete before the test
}
}
AsynHttProvider.getResponseBodyAsJValue
возвращает Future[JValue]
. Независимо от того, терпят неудачу или преуспевают ли http-вызовы, я не получаю никакого вывода на консоль. Кто-нибудь знает почему?
EDIT На самом деле то, что я не упомянул, что если я добавить вызов к не в будущем на основе HTTP API, это будет распечатать журнал вывода обоих вызовов, так что я не думаю, что это журнал настройки. В этом отношении я вижу ту же проблему с println
.
Я могу решить эту проблему путем добавления этого, см обновленного кода выше
Thread.sleep(2000)
Очевидный первый вопрос: посмотрели ли вы параметры ведения журнала [здесь] (http://doc.akka.io/docs/akka/2.2.0/scala/logging.html)? Скорее всего, вы могли бы отключиться. –
@ S.R.I, пожалуйста, см. Мой отредактированный вопрос, спасибо. – Bob