Maven 3.1.x 日志记录

Maven 使用Plexus 日志 API和基本的 Maven 实现写入标准输出。

我们已经决定SLF4J是日志 API 的最佳选择:SLF4J 已经达到了一定程度的普遍性,虽然 SLF4J 可能并不完美,但它是事实上的标准,尝试重新制作另一个标准是没有意义的。有许多实现可供选择,包括LogbackLog4j2。所有的辛勤工作都已完成。其他系统的所有桥梁和漏斗都运行良好,这允许其他人在其组件中使用他们喜欢的任何日志记录实现,同时仍然能够集成日志记录。

从 Maven 3.1.0 开始,标准 Maven 发行版使用SLF4J API结合SLF4J Simple实现进行日志记录。未来的版本可能会使用更高级的实现,但我们选择从简单开始。

查看发行版,您将看到以下布局,其中simplelogger.properties,尤其slf4j-api-x.y.z-jarslf4j-simple-x.y.z.jarSLF4J 实现相关:

apache-maven-3.x.y
├── LICENSE.txt
├── NOTICE.txt
├── README.txt
├── bin
│   └── ...
├── boot
│   └── ...
├── conf
│   ├── logging
│   │   └── simplelogger.properties
│   └── settings.xml
└── lib
    ├── ...
    ├── slf4j-api-x.y.z.jar
    ├── slf4j-simple-x.y.z.jar
    └── ...

配置日志记录

要使用SLF4J Simple配置日志记录,您可以编辑文件中的属性 ${maven.home}/conf/logging/simplelogger.properties。有关详细信息,请参阅链接的参考文档。

此文件中的每个条目都可以通过使用MAVEN_OPTS-D中的标志通过 Maven 的 JVM 系统属性覆盖。例如,将线程名称添加到每个日志记录行。MAVEN_OPTS=-Dorg.slf4j.simpleLogger.showThreadName=true mvn <goals>

此处列出了 Maven 的默认 SLF4J 配置。

更改 SLF4J 实现

如果您想使用不同的日志记录实现,只需从目录中删除 slf4j-simple JARlib并将其替换为其他实现之一,例如Log4j2Logback

有关交换“SLF4J 绑定”的更多详细信息,请参阅 SLF4J 文档。