我有一个javax.annotation.processing.Processor
我用来生成源文件。这一切都工作正常,但我想在构建过程中将一些调试消息写入控制台。我可以使用注释Messeger
类,但这不允许我利用 Gradle 日志记录。我想要的是通过 Gradle 日志选项控制输出,所以gradle -d ...
写入调试消息,gradle -i ...
信息消息等
有什么方法可以从我的 Java bean 处理类中获取 Gradle 记录器吗?
我读过Gradle 日志记录 doco http://gradle.org/docs/current/userguide/logging.html,并尝试使用 SLF4J 日志记录,但这只是将我的消息写入 stdout,它被拾取为QUIET
通过摇篮:
private static final Logger log = LoggerFactory.getLogger("org.gradle.example");
messeger.printMessage(Diagnostic.Kind.NOTE, "BeanProcessor: processing " + classElem);
log.debug("===debug=== BeanProcessor: processClass {}", classElem);
log.error("===error=== BeanProcessor: processClass {}", classElem);
21:28:22.211 [QUIET] [system.out] 21:28:22.208 [main] DEBUG com.example.beans.BeanProcessor - ===debug=== BeanProcessor: processClass com.example.beans.MyBean
21:28:22.212 [QUIET] [system.out] 21:28:22.212 [main] ERROR com.example.beans.BeanProcessor - ===error=== BeanProcessor: processClass com.example.beans.MyBean
21:28:22.216 [ERROR] [system.err] Note: BeanProcessor: processing com.example.beans.MyBean
另外,我得到的记录器是ch.qos.logback.classic.Logger
- Gradle doco 提到:“Logger ...扩展了 SLF4J Logger 接口并添加了一些 Gradle 特定方法”,所以我希望看到一些 Gradle 特定的日志记录类。
Gradle 配置如下Gradle 中的注释处理器将源文件输出到构建/类,从而导致 javadoc 失败。如何修复它? https://stackoverflow.com/questions/25239243/annotation-processor-in-gradle-outputs-source-files-to-build-classes-making-java#answer-25242121
Thanks,
一个可能有帮助的黑客:
您可以创建一个新的自定义 gradle 任务,所有编译任务都依赖该任务,并根据 -i、-d 等是否传递给 gradle (可能读取记录.captureStandardOutput https://docs.gradle.org/current/userguide/logging.html会成功的)。
然后在注释处理器启动时读取该环境变量,并使用它有条件地写入标准输出。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)