【发布时间】:2016-11-08 16:33:39
【问题描述】:
当使用例如mvn test -Tn 运行 Maven 构建并行化 n-fold,如何让 Maven 在其日志输出前加上并行测试运行器的标识符?目前日志输出如下:
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] -------------------------------------------------------
这使得很难判断哪个实例记录了什么
我希望它在日志中显示某种并行执行(线程、进程等)标识符,例如:
[1][INFO] -------------------------------------------------------
[1][INFO] T E S T S
[2][INFO] -------------------------------------------------------
[2][INFO] T E S T S
[2][INFO] -------------------------------------------------------
[1][INFO] -------------------------------------------------------
通过将-Dorg.slf4j.simpleLogger.showThreadName=true 添加到MAVEN_OPTS 环境变量(如https://maven.apache.org/maven-logging.html 所述)很容易在日志输出中获取线程标识符,但这似乎不会影响surefire 输出,例如:
[BuilderThread 1] [INFO] Surefire report directory: C:\redacted\path\to\module2\target\surefire-reports
[BuilderThread 0] [INFO] Nothing to compile - all classes are up to date
[BuilderThread 0] [INFO]
[BuilderThread 0] [INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ module1 ---
[BuilderThread 0] [INFO] Surefire report directory: C:\redacted\path\to\module1\target\surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
-------------------------------------------------------
T E S T S
-------------------------------------------------------
【问题讨论】:
-
谢谢!将
mvn替换为MAVEN_OPTS=-Dorg.slf4j.simpleLogger.showThreadName=true mvn在日志中生成线程标识符
标签: java maven logging maven-3