Я пытаюсь читать переменные в конфигурации моего журнала из свойств системы, но безуспешно. Я определяю очень простой logback.groovy, как показано ниже:Переменная не читается как системное свойство
import ch.qos.logback.classic.encoder.PatternLayoutEncoder
import ch.qos.logback.core.FileAppender
import static ch.qos.logback.classic.Level.DEBUG
appender("FILE", FileAppender) {
file = "${USER_HOME}/myApp.log"
encoder(PatternLayoutEncoder) {
pattern = "%msg%n"
}
}
root(DEBUG, ["FILE"])
Тогда простой Test.scala:
import org.slf4j.LoggerFactory
object Test {
val log = LoggerFactory.getLogger(getClass)
def main(args: Array[String]): Unit = {
log.debug("Where does the logging go?")
}
}
И запустить
SBT -DUSER_HOME = "/ TMP"
Но logback не берет системное свойство. Ниже выводится при запуске программы:
22: 03: 30768 | -INFO в ch.qos.logback.classic.LoggerContext [по умолчанию] - Найдено ресурсов [logback.groovy] в [файл : /home/des/workspace/play/target/scala-2.10/classes/logback.groovy] 22: 03: 31,449 | -INFO в [email protected] - О экземпляр экземпляра типа [ch.qos.logback.core.FileAppender] 22: 03: 31,450 | -INFO в [email protected] - Именование appender as [FILE] 22:03 : 31,515 | -ERROR в ch.qos.logback. [email protected] - Appender [FILE] типа [ch.qos.logback.core.FileAppender] не имеет никакого свойства [USER_HOME] 22: 03: 31,556 | -INFO в ch.qos.logback. core.FileAppender [FILE] - для свойства файла установлено значение [null/myApp.log] 22: 03: 31,562 | -INFO в [email protected] - Установка уровень регистратора [ ROOT] для DEBUG 22: 03: 31569 | -INFO в [email protected] - Прикрепление Appender имени [FILE] для Logger [ROOT]
Обратите внимание, что, когда я определите USER_HOME в моем файле logback fil е он работает отлично
Боюсь, что это не решит проблему. Системное свойство задано правильно. Это можно доказать, добавив println («Prop:» + System.getProperty («USER_HOME») к методу main() – user79074