[BT] Add debug logging for compilation iterations

This commit is contained in:
Alexander.Likhachev
2023-10-18 00:28:20 +02:00
committed by Space Team
parent ad4f4cbd28
commit 3eaaed8e7f
7 changed files with 102 additions and 26 deletions
@@ -37,6 +37,8 @@ import java.io.File
import java.rmi.RemoteException
import javax.inject.Inject
private const val LOGGER_PREFIX = "[KOTLIN] "
internal abstract class BuildToolsApiCompilationWork @Inject constructor(
private val fileSystemOperations: FileSystemOperations,
) :
@@ -59,12 +61,12 @@ internal abstract class BuildToolsApiCompilationWork @Inject constructor(
get() = workArguments.taskPath
private val log: KotlinLogger by lazy(LazyThreadSafetyMode.NONE) {
TaskLoggers.get(taskPath)?.let { GradleKotlinLogger(it).apply { debug("Using '$taskPath' logger") } }
TaskLoggers.get(taskPath)?.let { GradleKotlinLogger(it, LOGGER_PREFIX).apply { debug("Using '$taskPath' logger") } }
?: run {
val logger = LoggerFactory.getLogger("GradleKotlinCompilerWork")
val kotlinLogger = if (logger is org.gradle.api.logging.Logger) {
GradleKotlinLogger(logger)
} else SL4JKotlinLogger(logger)
GradleKotlinLogger(logger, LOGGER_PREFIX)
} else SL4JKotlinLogger(logger, LOGGER_PREFIX)
kotlinLogger.apply {
debug("Could not get logger for '$taskPath'. Falling back to sl4j logger")
@@ -8,25 +8,30 @@ package org.jetbrains.kotlin.gradle.logging
import org.gradle.api.logging.Logger
import org.jetbrains.kotlin.buildtools.api.KotlinLogger
internal class GradleKotlinLogger(private val log: Logger) : KotlinLogger {
internal class GradleKotlinLogger(private val log: Logger, private val prefix: String? = null) : KotlinLogger {
private fun transformMessage(msg: String): String {
if (prefix.isNullOrBlank()) return msg
return prefix + msg
}
override fun debug(msg: String) {
log.debug(msg)
log.debug(transformMessage(msg))
}
override fun error(msg: String, throwable: Throwable?) {
log.error(msg, throwable)
log.error(transformMessage(msg), throwable)
}
override fun info(msg: String) {
log.info(msg)
log.info(transformMessage(msg))
}
override fun warn(msg: String) {
log.warn(msg)
log.warn(transformMessage(msg))
}
override fun lifecycle(msg: String) {
log.lifecycle(msg)
log.lifecycle(transformMessage(msg))
}
override val isDebugEnabled: Boolean
@@ -8,25 +8,30 @@ package org.jetbrains.kotlin.gradle.logging
import org.jetbrains.kotlin.buildtools.api.KotlinLogger
import org.slf4j.Logger
internal class SL4JKotlinLogger(private val log: Logger) : KotlinLogger {
internal class SL4JKotlinLogger(private val log: Logger, private val prefix: String? = null) : KotlinLogger {
private fun transformMessage(msg: String): String {
if (prefix.isNullOrBlank()) return msg
return prefix + msg
}
override fun debug(msg: String) {
log.debug(msg)
log.debug(transformMessage(msg))
}
override fun lifecycle(msg: String) {
log.info(msg)
log.info(transformMessage(msg))
}
override fun error(msg: String, throwable: Throwable?) {
log.error(msg, throwable)
log.error(transformMessage(msg), throwable)
}
override fun info(msg: String) {
log.info(msg)
log.info(transformMessage(msg))
}
override fun warn(msg: String) {
log.warn(msg)
log.warn(transformMessage(msg))
}
override val isDebugEnabled: Boolean