2010-11-25 175 views
12

如何为maven构建配置日志记录? maven生成的日志不会提供足够的信息,如每个日志语句的时间戳。哪里/什么日志配置文件maven使用?maven日志文件配置

回答

8

您可能知道这一点,它不会打印日期,但使用mvn -X来打印详细输出。另外,你总是可以将maven的输出传给其他工具(假设你的shell环境包含了半途而废的工具)。例如mvn -X clean | awk '{print "("d")"$0}' "d=$(date)"会在maven的每一行之前打印一个日期。我没有打扰格式化日期,但这很容易通过date可执行文件的参数完成。请注意,这对于需要交互式用户输入的maven命令(例如maven archetype:generate)并不适用。

5

@whaley提供的答案是一个很好的方向。但是,$(日期)只在开始时评估一次,然后保持不变。 我不得不使用Is there a Unix utility to prepend timestamps to stdin?提到的方法:

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

Maven的3.1版本和3.2允许基于SLF4J记录器的简单配置。您可以在命令行中指定“-l logfile”,并且SimpleLogger的默认配置位于配置文件conf/logging/simplelogger.properties中。

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

+0

但`-l`是 “日志文件到所有建立输出去”,而不是日志配置。 – lexicore 2016-11-29 07:15:57

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