2010-11-25 4 views
12

maven 빌드에 대한 로깅을 어떻게 구성 할 수 있습니까? maven이 생성하는 로그는 각 로그 문에 타임 스탬프와 같은 정보를 충분히 제공하지 않습니다. maven이 사용하는 log config 파일은 어디서/무엇인가? 당신이 볼 수maven 로그 파일 구성

답변

8

이 사실을 알고 있으므로 날짜는 인쇄되지 않지만 mvn -X을 사용하면 자세한 출력을 인쇄 할 수 있습니다.

또한, maven의 출력을 다른 유틸리티로 파이프 할 수 있습니다 (셸 환경에 적합한 도구가 중간에 있다고 가정 할 때). 예를 들어 mvn -X clean | awk '{print "("d")"$0}' "d=$(date)"은 maven의 각 행 앞에 날짜를 출력합니다. 나는 날짜를 형식화하는데 신경 쓰지는 않았지만, 실행 파일 date에 대한 인수를 사용하면 쉽게 완료 할 수 있습니다. maven archetype:generate과 같이 대화 형 사용자 입력이 필요한 maven 명령에는이 기능이 실제로 작동하지 않습니다.

5

@whaley가 제공 한 답변은 좋은 방향입니다. 그러나 $ (날짜)는 처음에 한 번만 평가 된 다음 동일하게 유지됩니다. 버전 3.1

mvn -X <goals> | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }' 
2

메이븐과 3.2 SLF4J를 기반으로 로거의 간단한 구성을 허용 : 나는 Is there a Unix utility to prepend timestamps to stdin?에 언급 된 접근 방식을 사용했다. 명령 줄에서 "-l logfile"을 지정할 수 있으며 SimpleLogger의 기본 구성은 구성 파일 conf/logging/simplelogger.properties에 있습니다.

기본 타임 스탬프 (시작 이후 밀리 초)를 켜려면이 파일의 속성을 간단히 변경할 수 있습니다 (org.slf4j.simpleLogger.showDateTime=true).

+0

그러나'-l'하지 로깅 구성, "모든 이동합니다 출력을 구축 곳으로 로그 파일을". – lexicore

+1

@lexicore 예, 이것이 제가 "-l logfile"이라고 말한 것입니다. – eckes

+0

mvn -l logfile이 빌드 로그를 파일로 변경하려고합니다. – IcyBrk

1

@eckes에서 제안한대로 기본 로깅 구성 파일은 Maven 3.1.0부터 /conf/logging/simplelogger.properties에서 사용할 수 있습니다. 기본값은 밀리 초 단위로 상대 시간이기 때문에

변경 "org.slf4j.simpleLogger.showDateTime"속성 값을 "true"

org.slf4j.simpleLogger.showDateTime=true 

는 dateTimeFormat을 변경합니다.
다음 줄을 simplelogger.properties 파일에 추가하십시오.

org.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss:SSS 

참고 :
메이븐 로그 : https://maven.apache.org/maven-logging.html
DateFormat을 : http://docs.oracle.com/javase/1.5.0/docs/api/java/text/SimpleDateFormat.html