시스템 특성에서 내 로그백 구성의 변수를 읽으려고하지만 성공하지 못했습니다.변수가 시스템 특성으로 읽히지 않습니다.
다음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 : 나는 다음과 같이 매우 간단한 logback.groovy을 정의
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은 시스템 속성을 선택하지 않습니다. 찾을 자원 [logback.groovy] 에서 [파일 - -info이 ch.qos.logback.classic.LoggerContext에서 [기본] | 30768 :
22 : 03 내가이 프로그램을 실행하면 아래 출력 : /home/des/workspace/play/target/scala-2.10/classes/logback.groovy] 22 : 03 : 31,449 | -INFO in [email protected] - 약 으로 [ch.qos.logback.core.FileAppender] 22 : 03 : 31,450 | -INFO in [email protected]의 appender 인스턴스화 appender [FILE] 22:03 : 31,515 | -ERROR in ch.qos.logback. [email protected] - Appender 유형 [ch.qos.logback.core.FileAppender]의 [FILE]에 [USER_HOME] 속성 22 : 03 : 31,556 | -INFO가 인 ch.qos.logback이 없습니다. 파일 속성이 [null/myApp.log] 22 : 03 : 31,562 | -INFO에 에 설정되었습니다. [email protected] - 설정 로거 레벨 [ ROOT] DEBUG 22 : 03 : 31,569 | [email protected]에서 -info - 가 펜더 로거에 [FILE]라는 이름의 첨부 [ROOT]
참고 때 I 내 logback 파일에 USER_HOME 정의 전자 그것은 당신이 sbt
을 사용하지 않고 생산 ENV에서 실행하려면
fork := true
envVars := Map("USER_HOME" -> "/tmp")
를 포함하는 다음
sbt '; set javaOptions += "-DUSER_HOME="/tmp" ; runMain Test'
또는
변화 당신의 build.sbt
을 할 필요가
두렵지 않아 두려워하지 않습니다. 시스템 등록 정보가 올바르게 설정되고 있습니다. main() 메소드에 println ("Prop :"+ System.getProperty ("USER_HOME"))을 추가하여 증명할 수있는 것은 – user79074