【问题标题】:Apache Ant Build output to file using only log4jApache Ant Build 输出到文件只使用 log4j
【发布时间】:2016-11-11 09:25:39
【问题描述】:
我正在开发一个使用 Eclipse 作为 IDE 和 ant 作为构建工具的 java 项目。对于日志记录,我正在使用 log4j 库。我可以使用 log4j 配置在我的整个应用程序的日志文件中获取日志消息。但是当我使用 ANT 构建项目时,ANT 构建消息仍会发布到控制台。我想确保当我构建项目时,ANT 生成的构建消息,如构建失败/成功,也应该发布到相同的地方使用 log4j 记录文件。
如果有人有详细的想法,请帮助我。谢谢
【问题讨论】:
标签:
apache
logging
ant
build
log4j
【解决方案1】:
您可以使用 ant 中的Log4jListener。
您的 log4j.properties 文件看起来像这样
log4j.rootLogger=ERROR, LogFile
log4j.logger.org.apache.tools.ant.Project=INFO
log4j.logger.org.apache.tools.ant.Target=INFO
log4j.logger.org.apache.tools.ant.taskdefs=INFO
log4j.logger.org.apache.tools.ant.taskdefs.Echo=WARN
log4j.appender.LogFile=org.apache.log4j.FileAppender
log4j.appender.LogFile.layout=org.apache.log4j.PatternLayout
log4j.appender.LogFile.layout.ConversionPattern=[%6r] %8c{1} : %m%n
log4j.appender.LogFile.file=build.log
当你运行 ant 构建时,你必须按如下方式传递 listener 参数 -
ant -listener org.apache.tools.ant.listener.Log4jListener
为了让上面的命令运行你的 log4j.porperites,log4j jar 应该在 ant 类路径上。这样,您的构建日志将同时发送到控制台和文件 build.log