13

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

4

5 回答 5

8

您可能知道这一点,它不会打印日期,而是用于mvn -X打印详细输出。

此外,您始终可以将 maven 的输出通过管道传输到其他实用程序(假设您的 shell 环境包含中途胜任的工具)。例如 mvn -X clean | awk '{print "("d")"$0}' "d=$(date)"在 maven 中的每一行之前打印出一个日期。我没有费心格式化日期,但这很容易通过date可执行文件的参数来完成。请注意,这不适用于需要交互式用户输入的 Maven 命令,例如maven archetype:generate.

于 2010-11-25T16:05:36.170 回答
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; }'
于 2012-07-26T07:10:11.257 回答
3

正如@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 日期格式:http: //docs.oracle.com/javase/1.5.0/docs/api/java/text/SimpleDateFormat.html

于 2016-01-27T20:30:57.763 回答
2

这在 Maven 中似乎仍然是一些解决的问题,如您所见:

https://issues.apache.org/jira/browse/MNG-519

提供的解决方法看起来还不错,但是您需要修改 maven 安装。

于 2010-11-25T15:56:45.653 回答
2

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

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

于 2014-05-18T22:55:38.573 回答