Maven日志
环境
- win10
- JDK 11
- maven v3.9.5
通过调用cli
执行maven的各种指令,如mvn clean compile install deploy
等,以该命令为基础,控制台输出的内容基本是INFO
和WARNING
等。可以使用mvn -X
开启debug模式,输出会更详细。
- maven embedder的CLI指令页可查阅更多指令选项
- maven configure页可查阅
mvn
命令的执行上下文配置 - maven-logging对maven的日志做了说明,v3.5之后基于SLF4J实现,引入
slf4j-simple
关于命令输出的内容,若需要显示每一条log的时间、logger、thread信息,这就需要加参数
上文提到maven configure,可使用MAVEN_OPTS
或jvm.config
添加日志参数,这里使用jvm.config
演示
jvm.config
-Dorg.slf4j.simpleLogger.showDateTime=true
-Dorg.slf4j.simpleLogger.dateTimeFormat="yyyy-MM-dd HH:mm:ss.SSS"
-Dorg.slf4j.simpleLogger.showThreadName=false
-Dorg.slf4j.simpleLogger.showLogName=false
output
2024-03-19 23:37:53.736 [INFO] ------------------------------------------------------------------------
2024-03-19 23:37:53.739 [INFO] BUILD SUCCESS
2024-03-19 23:37:53.740 [INFO] ------------------------------------------------------------------------
2024-03-19 23:37:53.740 [INFO] Total time: 0.600 s (Wall Clock)
2024-03-19 23:37:53.741 [INFO] Finished at: 2024-03-19T23:37:53+08:00
2024-03-19 23:37:53.741 [INFO] ------------------------------------------------------------------------
替换日志实现
Java众多日志库中,jul、jcl、slf4j、logback、log4j(log4j2)之间通常会用各种bridge
将api调用委托到另一个实现中,比如使用SLF4J的API,用log4j2作底层日志输出。
暂不做替换测试,考虑到maven开源,可以fork后做修改自用
注
使用dateTimeFormat
必须开启showDateTime
才能打印时间