如何配置maven构建的日志记录? maven生成的日志不提供每个日志语句的时间戳等信息。 maven使用哪个/什么日志配置文件?
答案 0 :(得分:8)
您可能知道这一点,它不会打印日期,但使用mvn -X
打印详细输出。
此外,您始终可以将maven的输出传递给其他实用程序(假设您的shell环境包含一半有效的工具)。例如,mvn -X clean | awk '{print "("d")"$0}' "d=$(date)"
在maven中的每一行之前打印出一个日期。我没有费心格式化日期,但这可以通过date
可执行文件的参数轻松完成。请注意,这不适用于需要交互式用户输入的maven命令,例如maven archetype:generate
。
答案 1 :(得分:5)
@whaley提供的答案是一个很好的方向。但是,$(date)在开头只评估一次,然后保持不变。 我不得不使用Is there a Unix utility to prepend timestamps to stdin?中提到的方法:
mvn -X <goals> | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }'
答案 2 :(得分:2)
在Maven中,这仍然是一些已关闭的问题,您可以看到:
https://issues.apache.org/jira/browse/MNG-519
提供的解决方法看起来不错,但您需要修改maven安装。
答案 3 :(得分:2)
版本3.1和3.2中的Maven允许更简单地配置基于SLF4J的记录器。您可以指定&#34; -l logfile&#34;在命令行上,SimpleLogger的默认配置位于配置文件conf/logging/simplelogger.properties
中。
如果要打开默认时间戳(自开始以来的毫秒数),您可以简单地更改此文件中的属性:org.slf4j.simpleLogger.showDateTime=true
。
答案 4 :(得分:1)
正如@eckes所建议的那样,默认的日志记录配置文件可以在Maven 3.1.0以后的/conf/logging/simplelogger.properties中找到。
将“org.slf4j.simpleLogger.showDateTime”属性值更改为“true”
org.slf4j.simpleLogger.showDateTime=true
更改dateTimeFormat,默认为相对时间(以毫秒为单位) 在simplelogger.properties文件中添加以下行。
org.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss:SSS
参考文献:
Maven日志记录:https://maven.apache.org/maven-logging.html
DateFormats:http://docs.oracle.com/javase/1.5.0/docs/api/java/text/SimpleDateFormat.html