Я использую Play Framework 2.7.2
Я добавил файл logger-configurator.properties
в мою директорию conf
.Внутри этого файла есть только одна строка:
play.logger.configurator=com.my.MyLoggerConfigurator
файл com.my.MyLoggerConfigurator
объявлен так:
package com.my
import java.io.File
import java.net.URL
import org.slf4j.ILoggerFactory
import play.api.{Configuration, Environment, Mode}
import play.api.libs.logback.LogbackLoggerConfigurator
class MyLoggerConfigurator extends LogbackLoggerConfigurator {
println("@@@@@@@@@@@@@@@@@@@@constructor")
override def init(rootPath: File, mode: Mode): Unit = {
println("######################init")
super.init(rootPath, mode)
}
override def loggerFactory: ILoggerFactory = {
println("######################loggerFactory")
super.loggerFactory
}
override def configure(env: Environment,
configuration: Configuration,
optionalProperties: Map[String, String]): Unit = {
println("################configure1")
super.configure(env, configuration, optionalProperties)
}
override def configure(properties: Map[String, String], config: Option[URL]): Unit = {
println("################configure2")
super.configure(properties, config)
}
}
, когда я делаю sbt run
Я вижу
@@@@@@@@@@@@@@@@@@@@constructor
################configure1
################configure2
######################loggerFactory
Но init
никогда не вызывается.
Итак, мой вопрос: в каком случае вызывается init
?Из того, что я прочитал в документе, это только в режиме разработки, но я думал, что sbt run
будет запускать приложение в режиме разработки?
Кто-нибудь знает, каковы условия для вызова init
?