refactor: update Logger usage to improve clarity and consistency

This commit is contained in:
2025-11-13 13:22:12 +08:00
parent d98f101945
commit 24709d1993
6 changed files with 27 additions and 21 deletions

View File

@@ -26,26 +26,34 @@ package com.highcapable.gropify.internal
import com.highcapable.gropify.plugin.Gropify
import org.gradle.api.Project
import org.gradle.api.logging.Logger
import kotlin.properties.Delegates
/**
* Gropify logger.
*/
internal object Logger {
internal class Logger private constructor() {
private var logger by Delegates.notNull<Logger>()
internal companion object {
/**
* Initialize logger with project.
* @param project the project.
* @return [Logger]
*/
fun init(project: Project) = apply {
logger = project.logger
/**
* Create logger with project.
* @param project the project.
* @return [Logger]
*/
fun with(project: Project) = Logger().apply {
logger = project.logger
}
/**
* Create empty logger instance.
* @return [Logger]
*/
fun get() = Logger()
}
internal fun debug(msg: Any) = logger.debug("[${Gropify.TAG}] $msg")
internal fun info(msg: Any) = logger.info("[${Gropify.TAG}] $msg")
internal fun warn(msg: Any) = logger.warn("[${Gropify.TAG}] $msg")
internal fun error(msg: Any) = logger.error("[${Gropify.TAG}] $msg")
private var logger: Logger? = null
internal fun debug(msg: Any) = "[${Gropify.TAG}][DEBUG] $msg".let { logger?.debug(it) ?: println(it) }
internal fun info(msg: Any) = "[${Gropify.TAG}][INFO] $msg".let { logger?.info(it) ?: println(it) }
internal fun warn(msg: Any) = "[${Gropify.TAG}][WARN] $msg".let { logger?.warn(it) ?: println(it) }
internal fun error(msg: Any) = "[${Gropify.TAG}][ERROR] $msg".let { logger?.error(it) ?: println(it) }
}

View File

@@ -24,7 +24,6 @@ package com.highcapable.gropify.plugin
import com.highcapable.gropify.gradle.api.GradleDescriptor
import com.highcapable.gropify.gradle.api.extension.getOrCreate
import com.highcapable.gropify.gradle.api.plugin.PluginLifecycle
import com.highcapable.gropify.internal.Logger
import com.highcapable.gropify.internal.error
import com.highcapable.gropify.plugin.extension.dsl.configure.GropifyConfigureExtension
import org.gradle.api.Project
@@ -50,7 +49,6 @@ internal class GropifyLifecycle : PluginLifecycle {
}
override fun beforeProjectEvaluate(rootProject: Project) {
Logger.init(rootProject)
DefaultDeployer.resolve(rootProject)
}

View File

@@ -56,7 +56,7 @@ class GropifyPlugin<T : ExtensionAware> internal constructor() : Plugin<T> {
}
}
}
is Project -> Logger.init(target).error(
is Project -> Logger.with(target).error(
"Gropify can only applied in settings.gradle or settings.gradle.kts, but current is $target, stop loading.",
)
else -> Gropify.error("Gropify applied to an unknown target: $target, stop loading.")

View File

@@ -82,7 +82,7 @@ internal class BuildscriptDeployer(private val _config: () -> GropifyConfig) : D
) return
cachedSettingsProperties = allProperties
buildscriptGenerator.build(allConfig, allProperties).compile(
buildscriptGenerator.build(config, allConfig, allProperties).compile(
buildscriptAccessorsDependency,
buildscriptAccessorsDir.absolutePath,
buildscriptGenerator.compileStubFiles

View File

@@ -157,7 +157,7 @@ internal class SourceCodeDeployer(private val _config: () -> GropifyConfig) : De
it?.asResolver()?.optional(!debugMode)?.firstMethodOrNull {
name = "getName"
}?.invokeQuietly<String>() == config.sourceSetName
} ?: return Logger.warn(
} ?: return Logger.with(project).warn(
"Could not found source sets \"${config.sourceSetName}\" in project '${project.getFullName()}' ($projectType)."
)
@@ -179,7 +179,7 @@ internal class SourceCodeDeployer(private val _config: () -> GropifyConfig) : De
parameters(Any::class)
superclass()
}
resolver?.invokeQuietly(generateDirPath) ?: Logger.error(
resolver?.invokeQuietly(generateDirPath) ?: Logger.with(project).error(
"Project '${project.getFullName()}' source sets deployed failed, method \"srcDir\" maybe failed during the processing."
)
}

View File

@@ -73,7 +73,7 @@ internal object AndroidProjectHelper {
}.onFailure {
// If file broken, reset it.
namespacesFile.writeText("{}")
Logger.warn("Android project namespaces file was broken and has been reset.")
Logger.with(this).warn("Android project namespaces file was broken and has been reset.")
}.getOrDefault(hashMapOf())
val namespace = getExtensionNamespace()