如何为 Maven 构建配置日志记录?maven 生成的日志没有提供足够的信息,例如每个日志语句的时间戳。maven 在哪里/使用什么日志配置文件?
5 回答
您可能知道这一点,它不会打印日期,而是用于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
要更改 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
这在 Maven 中似乎仍然是一些已解决的问题,如您所见:
https://issues.apache.org/jira/browse/MNG-519
提供的解决方法看起来还不错,但是您需要修改 maven 安装。
版本 3.1 和 3.2 中的 Maven 允许更简单地配置基于 SLF4J 的记录器。您可以在命令行中指定“-l logfile”,SimpleLogger的默认配置在config文件conf/logging/simplelogger.properties
中。
如果要打开默认时间戳(自开始以来的毫秒数),您可以简单地更改此文件中的属性:org.slf4j.simpleLogger.showDateTime=true
.