Global.scala в новом приложении PLAY2:Akka Scheduler сбрасывает уровни регистрации. Зачем?
import play.api.{GlobalSettings, Application}
import play.api.libs.concurrent.Akka
import play.api.libs.concurrent.Execution.Implicits._
import play.api.Play
import play.api.Play.current
import scala.concurrent._
import scala.concurrent.duration._
import play.api.Logger
object Global extends GlobalSettings {
val logger = Logger("foo")
// `printLoggerLevels` prints logger levels
def printLoggerLevels(prepend:String) =
logger.error(
prepend +": "+
logger.isErrorEnabled +" "+
logger.isWarnEnabled +" "+
logger.isInfoEnabled +" "+
logger.isDebugEnabled +" "+
logger.isTraceEnabled
)
override def onStart(app: Application) {
printLoggerLevels("outside scheduleOnce")
Akka.system.scheduler.scheduleOnce(500 milliseconds) {
printLoggerLevels("inside scheduleOnce")
}
}
}
Это печатает уровни регистратора вне и внутри Akka.system.scheduler.scheduleOnce(500 milliseconds) {...}
так:
$ play start 9000
[error] foo - outside scheduleOnce: true true true true false <----- notice this
[info] play - Starting application default Akka system.
[info] a.e.s.Slf4jEventHandler - Slf4jEventHandler started
[info] play - Application started (Prod)
[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
[error] foo - inside scheduleOnce: true false false false false <----- and this
Вы можете видеть, что уровни ЗК внутри scheduleOnce
сбрасываются в ОШИБКА. Вне scheduleOnce
они находятся на DEBUG, и внутри они находятся на ОШИБКЕ. Если бы я должен был запустить его с play run
, он будет работать нормально, а уровни будут одинаковыми, но при запуске с play start
они будут сброшены.
Application.conf:
logger.root=DEBUG
logger.play=INFO
logger.application=INFO
Это свежий проект, я не сделал никаких изменений я не Столба.
Почему это происходит?
Редактировать: Еще один способ задать этот вопрос: как работает приложение с start
влияет на его внутреннюю работу, и в свою очередь, как это влияет на уровни ведения журнала в анонимной функции, переданные планировщику Akka?
Edit: Play версия 2.1.4
Не могли бы вы уточнить версию? Это Play 2.0.0? Были некоторые довольно большие изменения между версиями v2 с точки зрения построения проектов и т. Д. ... – torbinsky
@torbinsky моя точная версия игры 2.1.4 –