Maven 로깅 옵션

1. 개요

이 빠른 자습서에서는 Maven에서 로깅 옵션을 구성하는 방법을 살펴 보겠습니다.

2. 명령 줄

기본적으로 Maven은 정보, 경고오류 로그 만 기록합니다 . 또한 오류의 경우 해당 로그의 전체 스택 추적을 표시하지 않습니다. 전체 스택 트레이스를보기 위해 -e 또는 –errors 옵션을 사용할 수 있습니다 .

$ mvn -e clean compile // truncated cannot find symbol symbol: variable name location: class Compiled at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) ...

위와 같이 이제 Maven은 전체 오류 보고서를 표시합니다. -X 또는 –debug 옵션을 통해 디버그 수준 로그를 볼 수도 있습니다 .

$ mvn -X clean compile // truncated OS name: "mac os x", version: "10.15.5", arch: "x86_64", family: "mac" [DEBUG] Created new class realm maven.api [DEBUG] Importing foreign packages into class realm maven.api ...

디버그가 켜져 있으면 출력이 매우 장황합니다. 이 문제를 해결하기 위해 Maven에 -q 또는 –quiet 옵션을 통해 예상되는 오류를 기록하지 않도록 요청할 수 있습니다 .

$ mvn --quiet clean compile

또한 -l 또는 –log-file 옵션을 사용하여 Maven 로그를 파일로 리디렉션 할 수 있습니다 .

$ mvn --log-file ./mvn.log clean compile

표준 출력 대신 현재 디렉터리 의 mvn.log 파일에서 모든 로그를 찾을 수 있습니다 . 대안으로 OS 기능을 사용하여 Maven 출력을 파일로 리디렉션하는 것도 가능합니다.

$ mvn clean compile > ./mvn.log

3. SLF4J 설정

현재 Maven은 SLF4J Simple 구현과 결합 된 로깅을 위해 SLF4J API를 사용하고 있습니다. 따라서 SLF4J Simple로 로깅을 구성 하려면 $ {maven.home} /conf/logging/simplelogger.properties 파일 의 속성을 편집 할 수 있습니다 . 에프

또는 예를 들어이 파일에 다음 줄을 추가하면 :

org.slf4j.simpleLogger.showDateTime=true org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss

그러면 Maven은 위의 형식으로 날짜-시간 정보를 표시합니다.

다른 빌드를 시도해 보겠습니다.

$ mvn clean compile 2020-07-08 12:08:07 [INFO] Scanning for projects...

명령 줄에서 -D 인수를 통해 이러한 속성을 전달할 수도 있습니다 .

$ mvn compile -Dorg.slf4j.simpleLogger.showThreadName=true [main] [INFO] Scanning for projects...

여기에 다른 정보와 함께 스레드 이름이 표시됩니다.

언급 된 속성 외에도 다른 속성으로 간단한 로거를 구성 할 수도 있습니다.

  • org.slf4j.simpleLogger.logFile 은 표준 출력 대신 로깅에 로그 파일을 사용합니다.
  • org.slf4j.simpleLogger.defaultLogLevel 은 기본 로그 수준을 나타냅니다. trace , debug , info , warn , error 또는 off 중 하나 일 수 있습니다 . 기본값은 info입니다.
  • org.slf4j.simpleLogger.showLogNametrue 인 경우 SLF4j 로거 이름을 표시 합니다.
  • org.slf4j.simpleLogger.showShortLogName참인 경우 긴 로거 이름을 자릅니다.

4. 결론

이 짧은 튜토리얼에서는 Maven에서 다양한 로깅 및 상세 옵션을 구성하는 방법을 보았습니다.