malf和slf4j simplelogger的属性

时间:2015-03-03 22:24:48

标签: maven logging slf4j

我运行时不明白某些行为:

mvn -V clean -Dorg.slf4j.simpleLogger.showThreadName=true

我明白了:

Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12- 14T18:29:23+01:00)
Java version: 1.8.0_31, vendor: Oracle Corporation
...
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------

因此,看起来slf4j无法识别属性org.slf4j.simpleLogger.showThreadName

当我在conf/logging/simplelogger.properties中更改此属性时,我得到:

Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T18:29:23+01:00)
Java version: 1.8.0_31, vendor: Oracle Corporation
...
[main] [INFO] Scanning for projects...
[main] [INFO] ------------------------------------------------------------------------ 

现在我有了我的期望。

同样mvn help:system -Dorg.slf4j.simpleLogger.showThreadName=true表示已设置属性。

我做错了什么?

我想使用cli来设置sl4j的属性。我不想改变maven内部配置文件。

1 个答案:

答案 0 :(得分:6)

-D optionmvn将参数设置为maven property。 org.slf4j.simpleLogger.showThreadName是Java system property。 Maven属性包括Java系统属性,但反之亦然。

将java系统属性传递给maven使用的库(例如slf4j)的最简单方法是将其添加到MAVEN_OPTS环境变量中。