mirror of
https://github.com/HighCapable/Gropify.git
synced 2025-12-10 15:24:07 +08:00
refactor: update Logger usage to improve clarity and consistency
This commit is contained in:
@@ -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) }
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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.")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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."
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user