maven日志文件配置

时间:2010-11-25 09:22:00

标签: maven-2 maven maven-3

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

5 个答案:

答案 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