scala - Logging within Akka TestKit outside Actors -


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