如何为Maven构建配置日志记录? Maven生成的日志没有提供每个日志语句的时间戳等足够的信息。 Maven在哪里/哪个日志配置文件使用?

有帮助吗?

解决方案

这似乎仍然有些 关闭 如您所见,Maven的问题:

https://issues.apache.org/jira/browse/mng-519

提供的解决方法看起来还不错,但是您需要修改Maven安装。

其他提示

您可能意识到这一点,它不会打印日期,但要使用 mvn -X 打印详细的输出。

此外,您始终可以将Maven的输出输送到其他一些实用程序(假设您的Shell环境包含一半胜任的工具)。例如 mvn -X clean | awk '{print "("d")"$0}' "d=$(date)" 在Maven中打印出每行之前的日期。我没有费心格式化日期,但这很容易通过参数来完成 date 可执行。请注意,这对需要交互式用户输入的Maven命令真的不起作用,例如 maven archetype:generate.

@Whaley提供的答案是一个很好的方向。但是,$(日期)在开始时仅评估一次,然后保持不变。我不得不使用一种提到的方法 是否有UNIX实用程序可以预留时间戳到STDIN?:

mvn -X <goals> | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }'

版本3.1和3.2中的Maven允许对基于SLF4J的Logger进行更简单的配置。您可以在命令行上指定“ -l logFile”,而SimpleLogger的默认配置在配置文件中 conf/logging/simplelogger.properties.

如果要打开默认的TIMESTAMPTS(自启动以来毫秒),您可以简单地更改此文件中的属性: org.slf4j.simpleLogger.showDateTime=true.

正如@eckes所建议的那样,默认记录配置文件可在/conf/logging/simplelogger.properties上获得,来自Maven 3.1.0。

更改“ org.slf4j.simplelogger.showdatetime”属性值为“ true”

org.slf4j.simpleLogger.showDateTime=true

要更改dateTimeFormat,默认情况下是毫秒中的相对时间。
在SimpleLogger.properties文件中添加以下行。

org.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss:SSS

参考:
Maven Logging: https://maven.apache.org/maven-logging.html
dateformats: http://docs.oracle.com/javase/1.5.0/docs/api/java/java/text/simpledateformat.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top