【发布时间】:2011-05-15 14:18:36
【问题描述】:
如何为 Maven 构建配置日志记录? maven 生成的日志没有提供足够的信息,例如每个日志语句的时间戳。 maven 在哪里/使用什么日志配置文件?
【问题讨论】:
如何为 Maven 构建配置日志记录? maven 生成的日志没有提供足够的信息,例如每个日志语句的时间戳。 maven 在哪里/使用什么日志配置文件?
【问题讨论】:
您可能知道这一点,它不会打印日期,而是使用mvn -X 打印详细输出。
此外,您始终可以将 maven 的输出通过管道传输到其他一些实用程序(假设您的 shell 环境包含中途胜任的工具)。例如mvn -X clean | awk '{print "("d")"$0}' "d=$(date)" 在 maven 中的每一行之前打印出一个日期。我没有费心格式化日期,但这很容易通过date 可执行文件的参数完成。请注意,这不适用于需要交互式用户输入的 maven 命令,例如 maven archetype:generate。
【讨论】:
@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; }'
【讨论】:
正如@eckes 所建议的,从 Maven 3.1.0 开始,默认日志配置文件位于 /conf/logging/simplelogger.properties。
将“org.slf4j.simpleLogger.showDateTime”属性值更改为“true”
org.slf4j.simpleLogger.showDateTime=true
更改日期时间格式,默认为相对时间,以毫秒为单位。
在 simplelogger.properties 文件中添加以下行。
org.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss:SSS
参考:
Maven 日志记录:https://maven.apache.org/maven-logging.html
日期格式:http://docs.oracle.com/javase/1.5.0/docs/api/java/text/SimpleDateFormat.html
【讨论】:
这似乎仍然是 Maven 中的一些关闭问题,您可以在以下位置看到:
https://issues.apache.org/jira/browse/MNG-519
提供的解决方法看起来还不错,但是您需要修改 maven 安装。
【讨论】:
版本 3.1 和 3.2 中的 Maven 允许更简单地配置基于 SLF4J 的记录器。可以在命令行指定“-l logfile”,SimpleLogger的默认配置在配置文件conf/logging/simplelogger.properties中。
如果您想打开默认时间戳(自开始以来的毫秒数),您可以简单地更改此文件中的属性:org.slf4j.simpleLogger.showDateTime=true。
【讨论】:
-l 是“日志文件到所有构建输出的位置”,而不是日志配置。