i have been trying log things within scalatest such:
class changesetactortest extends persistencespec(actorsystem("persistent-test-system"))
persistencecleanup {
val log = logging(system, this)
basically let's chansetactortest inherit testkit(system)
unfortunately
logging(system, this)
does not work this
i following error:
[error] /users/maatary/dev/ideaprojects/poolpartyconnector/src/test/scala/org/iadb/poolpartyconnector/changepropagation/changesetactortest.scala:22: cannot find logsource org.iadb.poolpartyconnector.changepropagation.changesetactortest please see scaladoc logsource how obtain or construct one. [error] val log = logging(system, this)
i beleive in akka logging doc following point: , in other cases compile error occurs unless , implicit logsource[t] in scope type in question.
in other words there no logsource[testkit]
i simplest solution deal issue, minimal additional configuration. far did following , works expected:
class changesetactortest extends persistencespec(actorsystem("persistent-test-system"))
persistencecleanup {
val log = system.log
from there go , things like
val received = chgtfetcher.receivewhile((requestinterval + processinglag).*(3)) { case msg:fetchnewchangeset => log.info(s"received: ${msg}" ) ; chgtfetcher.reply(noavailablechangeset); msg }
my question, recommended appraoch. far order of message coming actor , 1 test ordered.
please cloud let me know recommended appraoch log in unified appraoch:
1 - test class (e.g. above) , actor @ same time ?
2 - if 1 uses system external class needs log , need 1 unified logging (asynchronous) going on.
many thanks
-m-
have @ comment: https://github.com/akka/akka/blob/master/akka-actor/src/main/scala/akka/event/logging.scala#l196-l237
i believe more straight forward approach define implicit
logsource[changesetactortest]
locally.
i.e:
val log = { implicit val logsource = new logsource[changesetactortest] { override def genstring(t: changesetactortest) = "changesetactortest" } logging(system, this) }
Comments
Post a Comment