You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin KSP处理器中打印日志?

在Kotlin KSP中输出日志的两种方法

在KSP里调试处理器时,println的输出不会直接显示在常规控制台,而是输出到Gradle构建日志中。不过更推荐用KSP官方提供的Logger工具打日志,更规范且便于控制级别,具体操作如下:


方法一:使用KSP官方Logger(推荐)

  1. 注入Logger到处理器
    修改你的SymbolProcessorProvider,从SymbolProcessorEnvironment中获取Logger并传给处理器:

    class ListedProcessorProvider : SymbolProcessorProvider {
        override fun create(env: SymbolProcessorEnvironment): SymbolProcessor {
            return ListedProcessor(env.logger, env.codeGenerator)
        }
    }
    
  2. 在处理器中使用Logger
    更新处理器构造函数接收Logger参数,然后用不同级别方法输出日志:

    internal class ListedProcessor(
        private val logger: Logger,
        private val fileGenerator: FileWriter,
    ) : SymbolProcessor {
    
        override fun process(resolver: Resolver): List<KSAnnotated> {
            logger.info("开始处理Listed和Arrayed注解")
            
            val listedFunctions = resolver.findAnnotations(Listed::class).toList()
            logger.info("找到${listedFunctions.size}个标记@Listed的方法")
            
            val arrayedFunctions = resolver.findAnnotations(Arrayed::class).toList()
            logger.info("找到${arrayedFunctions.size}个标记@Arrayed的方法")
    
            val invalidElements = (listedFunctions + arrayedFunctions).filterNot { it.validate() }
            if (invalidElements.isNotEmpty()) {
                logger.warn("发现${invalidElements.size}个无效注解元素")
            }
            
            return invalidElements.toList()
        }
    }
    
  3. 查看日志

    • Android Studio中打开底部的「Gradle」标签页,运行构建任务即可看到日志;
    • 终端执行./gradlew assembleDebug --info命令,可查看更详细的分级日志。

方法二:使用println查看输出

如果暂时不想改代码,println的内容也能找到:

  • 在Android Studio的「Gradle」控制台中,运行构建任务即可看到输出;
  • 终端执行构建命令时添加--info参数(如./gradlew build --info),println的内容会混杂在构建日志里。

注意:KSP处理器运行在编译阶段,日志不会出现在App的Logcat中,仅会输出到Gradle构建日志内。

内容的提问来源于stack exchange,提问作者Elye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 14:40:44