题
如何为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