Minor: unify logging in scripting
This commit is contained in:
+7
-7
@@ -241,7 +241,7 @@ class ScriptDefinitionsManager(private val project: Project) : LazyScriptDefinit
|
||||
} catch (t: Throwable) {
|
||||
if (t is ControlFlowException) throw t
|
||||
// reporting failed loading only once
|
||||
LOG.error("[kts] cannot load script definitions using $this", t)
|
||||
scriptingErrorLog("[kts] cannot load script definitions using $this", t)
|
||||
failedContributorsHashes.add(this@safeGetDefinitions.hashCode())
|
||||
}
|
||||
return emptyList()
|
||||
@@ -266,7 +266,7 @@ fun loadDefinitionsFromTemplates(
|
||||
additionalResolverClasspath: List<File> = emptyList()
|
||||
): List<ScriptDefinition> {
|
||||
val classpath = templateClasspath + additionalResolverClasspath
|
||||
LOG.info("[kts] loading script definitions $templateClassNames using cp: ${classpath.joinToString(File.pathSeparator)}")
|
||||
scriptingInfoLog("Loading script definitions $templateClassNames using cp: ${classpath.joinToString(File.pathSeparator)}")
|
||||
val baseLoader = ScriptDefinitionContributor::class.java.classLoader
|
||||
val loader = if (classpath.isEmpty()) baseLoader else URLClassLoader(classpath.map { it.toURI().toURL() }.toTypedArray(), baseLoader)
|
||||
|
||||
@@ -286,24 +286,24 @@ fun loadDefinitionsFromTemplates(
|
||||
ScriptDefinition.FromTemplate(hostConfiguration, template, ScriptDefinition::class)
|
||||
}
|
||||
else -> {
|
||||
LOG.warn("[kts] cannot find a valid script definition annotation on the class $template")
|
||||
scriptingWarnLog("Cannot find a valid script definition annotation on the class $template")
|
||||
null
|
||||
}
|
||||
}
|
||||
} catch (e: ClassNotFoundException) {
|
||||
// Assuming that direct ClassNotFoundException is the result of versions mismatch and missing subsystems, e.g. gradle
|
||||
// so, it only results in warning, while other errors are severe misconfigurations, resulting it user-visible error
|
||||
LOG.warn("[kts] cannot load script definition class $templateClassName")
|
||||
scriptingWarnLog("Cannot load script definition class $templateClassName")
|
||||
null
|
||||
} catch (e: Throwable) {
|
||||
if (e is ControlFlowException) throw e
|
||||
|
||||
val message = "[kts] cannot load script definition class $templateClassName"
|
||||
val message = "Cannot load script definition class $templateClassName"
|
||||
val thirdPartyPlugin = PluginManagerCore.getPluginByClassName(templateClassName)
|
||||
if (thirdPartyPlugin != null) {
|
||||
LOG.error(PluginException(message, e, thirdPartyPlugin))
|
||||
scriptingErrorLog(message, PluginException(message, e, thirdPartyPlugin))
|
||||
} else {
|
||||
LOG.error(message, e)
|
||||
scriptingErrorLog(message, e)
|
||||
}
|
||||
null
|
||||
}
|
||||
|
||||
+4
-4
@@ -263,7 +263,7 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De
|
||||
forceSkipNotification: Boolean
|
||||
) {
|
||||
saveLock.withLock {
|
||||
debug(file) { "configuration received = $newResult" }
|
||||
scriptingDebugLog(file) { "configuration received = $newResult" }
|
||||
|
||||
setLoadedConfiguration(file, newResult)
|
||||
|
||||
@@ -290,7 +290,7 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De
|
||||
saveReports(file, newResult.reports)
|
||||
setAppliedConfiguration(file, newResult, syncUpdate = true)
|
||||
} else {
|
||||
debug(file) {
|
||||
scriptingDebugLog(file) {
|
||||
"configuration changed, notification is shown: old = $oldConfiguration, new = $newConfiguration"
|
||||
}
|
||||
|
||||
@@ -321,7 +321,7 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De
|
||||
) {
|
||||
val oldReports = IdeScriptReportSink.getReports(file)
|
||||
if (oldReports != newReports) {
|
||||
debug(file) { "new script reports = $newReports" }
|
||||
scriptingDebugLog(file) { "new script reports = $newReports" }
|
||||
|
||||
ServiceManager.getService(project, ScriptReportSink::class.java).attachReports(file, newReports)
|
||||
|
||||
@@ -502,7 +502,7 @@ abstract class DefaultScriptingSupportBase(val manager: CompositeScriptConfigura
|
||||
) {
|
||||
manager.updater.checkInTransaction()
|
||||
val newConfiguration = newConfigurationSnapshot?.configuration
|
||||
debug(file) { "configuration changed = $newConfiguration" }
|
||||
scriptingDebugLog(file) { "configuration changed = $newConfiguration" }
|
||||
|
||||
if (newConfiguration != null) {
|
||||
cache.setApplied(file, newConfigurationSnapshot)
|
||||
|
||||
+3
-3
@@ -9,7 +9,7 @@ import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.loader.ScriptConfigurationLoader
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.loader.ScriptConfigurationLoadingContext
|
||||
import org.jetbrains.kotlin.idea.core.script.debug
|
||||
import org.jetbrains.kotlin.idea.core.script.scriptingDebugLog
|
||||
import org.jetbrains.kotlin.idea.core.util.cachedFileAttribute
|
||||
import org.jetbrains.kotlin.idea.core.util.readObject
|
||||
import org.jetbrains.kotlin.idea.core.util.writeObject
|
||||
@@ -55,7 +55,7 @@ internal class ScriptConfigurationFileAttributeCache(
|
||||
virtualFile: VirtualFile
|
||||
): ScriptConfigurationSnapshotForFS? {
|
||||
val configurationSnapshot = virtualFile.scriptConfigurationSnapshot ?: return null
|
||||
debug(virtualFile) { "configuration from fileAttributes = $configurationSnapshot" }
|
||||
scriptingDebugLog(virtualFile) { "configuration from fileAttributes = $configurationSnapshot" }
|
||||
|
||||
val configuration = configurationSnapshot.configuration ?: return null
|
||||
|
||||
@@ -73,7 +73,7 @@ internal class ScriptConfigurationFileAttributeCache(
|
||||
if (it.exists()) {
|
||||
true
|
||||
} else {
|
||||
debug(file) {
|
||||
scriptingDebugLog(file) {
|
||||
"classpath root saved to file attribute doesn't exist: ${it.path}"
|
||||
}
|
||||
false
|
||||
|
||||
+3
-5
@@ -8,15 +8,13 @@ package org.jetbrains.kotlin.idea.core.script.configuration.loader
|
||||
import com.intellij.openapi.diagnostic.ControlFlowException
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManager
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.cache.CachedConfigurationInputs
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.cache.ScriptConfigurationSnapshot
|
||||
import org.jetbrains.kotlin.idea.core.script.debug
|
||||
import org.jetbrains.kotlin.idea.core.script.scriptingDebugLog
|
||||
import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.runReadAction
|
||||
import org.jetbrains.kotlin.scripting.resolve.KtFileScriptSource
|
||||
import org.jetbrains.kotlin.scripting.resolve.LegacyResolverWrapper
|
||||
import org.jetbrains.kotlin.scripting.resolve.refineScriptCompilationConfiguration
|
||||
@@ -57,7 +55,7 @@ open class DefaultScriptConfigurationLoader(val project: Project) : ScriptConfig
|
||||
vFile: VirtualFile,
|
||||
scriptDefinition: ScriptDefinition
|
||||
): ScriptConfigurationSnapshot {
|
||||
debug(file) { "start dependencies loading" }
|
||||
scriptingDebugLog(file) { "start dependencies loading" }
|
||||
|
||||
val inputs = getInputsStamp(vFile, file)
|
||||
val scriptingApiResult = try {
|
||||
@@ -76,7 +74,7 @@ open class DefaultScriptConfigurationLoader(val project: Project) : ScriptConfig
|
||||
scriptingApiResult.valueOrNull()
|
||||
)
|
||||
|
||||
debug(file) { "finish dependencies loading" }
|
||||
scriptingDebugLog(file) { "finish dependencies loading" }
|
||||
return result
|
||||
}
|
||||
|
||||
|
||||
+4
-2
@@ -13,7 +13,9 @@ import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.util.Alarm
|
||||
import com.intellij.util.containers.HashSetQueue
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.CompositeScriptConfigurationManager
|
||||
import org.jetbrains.kotlin.idea.core.script.debug
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.utils.DefaultBackgroundExecutor.Companion.PROGRESS_INDICATOR_DELAY
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.utils.DefaultBackgroundExecutor.Companion.PROGRESS_INDICATOR_MIN_QUEUE
|
||||
import org.jetbrains.kotlin.idea.core.script.scriptingDebugLog
|
||||
import org.jetbrains.kotlin.idea.core.util.KotlinIdeaCoreBundle
|
||||
import java.util.*
|
||||
import javax.swing.SwingUtilities
|
||||
@@ -72,7 +74,7 @@ internal class DefaultBackgroundExecutor(
|
||||
val task = LoadTask(key, actions)
|
||||
|
||||
if (queue.add(task)) {
|
||||
debug(task.key) { "added to update queue" }
|
||||
scriptingDebugLog(task.key) { "added to update queue" }
|
||||
|
||||
// If the queue is longer than PROGRESS_INDICATOR_MIN_QUEUE, show progress and cancel button
|
||||
if (queue.size > PROGRESS_INDICATOR_MIN_QUEUE) {
|
||||
|
||||
@@ -18,14 +18,26 @@ var Application.isScriptChangesNotifierDisabled by NotNullableUserDataProperty(
|
||||
true
|
||||
)
|
||||
|
||||
internal val LOG = Logger.getInstance("#org.jetbrains.kotlin.idea.script")
|
||||
private val logger = Logger.getInstance("#org.jetbrains.kotlin.idea.script")
|
||||
|
||||
internal fun debug(file: KtFile, message: () -> String) {
|
||||
debug(file.originalFile.virtualFile, message)
|
||||
fun scriptingDebugLog(file: KtFile, message: () -> String) {
|
||||
scriptingDebugLog(file.originalFile.virtualFile, message)
|
||||
}
|
||||
|
||||
internal fun debug(file: VirtualFile? = null, message: () -> String) {
|
||||
if (LOG.isDebugEnabled) {
|
||||
LOG.debug("[KOTLIN SCRIPT] ${file?.let { file.path + " "} ?: ""}" + message())
|
||||
fun scriptingDebugLog(file: VirtualFile? = null, message: () -> String) {
|
||||
if (logger.isDebugEnabled) {
|
||||
logger.debug("[KOTLIN_SCRIPTING] ${file?.let { file.path + " "} ?: ""}" + message())
|
||||
}
|
||||
}
|
||||
|
||||
fun scriptingInfoLog(message: String) {
|
||||
logger.info("[KOTLIN_SCRIPTING] $message")
|
||||
}
|
||||
|
||||
fun scriptingWarnLog(message: String) {
|
||||
logger.warn("[KOTLIN_SCRIPTING] $message")
|
||||
}
|
||||
|
||||
fun scriptingErrorLog(message: String, throwable: Throwable?) {
|
||||
logger.error("[KOTLIN_SCRIPTING] $message", throwable)
|
||||
}
|
||||
+2
-2
@@ -25,7 +25,7 @@ import kotlinx.coroutines.launch
|
||||
import org.jetbrains.kotlin.idea.core.script.KotlinScriptDependenciesClassFinder
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesModificationTracker
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.CompositeScriptConfigurationManager
|
||||
import org.jetbrains.kotlin.idea.core.script.debug
|
||||
import org.jetbrains.kotlin.idea.core.script.scriptingDebugLog
|
||||
import org.jetbrains.kotlin.idea.core.util.EDT
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||
@@ -226,7 +226,7 @@ abstract class ScriptClassRootsUpdater(
|
||||
runWriteAction {
|
||||
if (project.isDisposed) return@runWriteAction
|
||||
|
||||
debug { "roots change event" }
|
||||
scriptingDebugLog { "roots change event" }
|
||||
|
||||
ProjectRootManagerEx.getInstanceEx(project)?.makeRootsChange(EmptyRunnable.getInstance(), false, true)
|
||||
ScriptDependenciesModificationTracker.getInstance(project).incModificationCount()
|
||||
|
||||
+2
-2
@@ -11,8 +11,8 @@ import com.intellij.openapi.projectRoots.Sdk
|
||||
import com.intellij.openapi.roots.ProjectRootManager
|
||||
import com.intellij.openapi.vfs.VfsUtil
|
||||
import org.jetbrains.kotlin.idea.caches.project.getAllProjectSdks
|
||||
import org.jetbrains.kotlin.idea.core.script.LOG
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.utils.ScriptClassRootsStorage
|
||||
import org.jetbrains.kotlin.idea.core.script.scriptingWarnLog
|
||||
import org.jetbrains.kotlin.idea.util.getProjectJdkTableSafe
|
||||
import java.io.File
|
||||
|
||||
@@ -77,7 +77,7 @@ class ScriptSdksBuilder(
|
||||
return anyJavaSdk
|
||||
}
|
||||
|
||||
LOG.warn(
|
||||
scriptingWarnLog(
|
||||
"Default Script SDK is null: " +
|
||||
"projectSdk = ${ProjectRootManager.getInstance(project).projectSdk}, " +
|
||||
"all sdks = ${getAllProjectSdks().joinToString("\n")}"
|
||||
|
||||
+1
-4
@@ -12,10 +12,7 @@ import com.intellij.util.EnvironmentUtil
|
||||
import com.intellij.util.PathUtil
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionContributor
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionSourceAsContributor
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager
|
||||
import org.jetbrains.kotlin.idea.core.script.loadDefinitionsFromTemplates
|
||||
import org.jetbrains.kotlin.idea.core.script.*
|
||||
import org.jetbrains.kotlin.idea.scripting.gradle.importing.KotlinDslSyncListener
|
||||
import org.jetbrains.kotlin.idea.scripting.gradle.roots.GradleBuildRootsManager
|
||||
import org.jetbrains.kotlin.idea.scripting.gradle.roots.Imported
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.idea.scripting.gradle
|
||||
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.openapi.vfs.newvfs.FileAttribute
|
||||
import org.jetbrains.kotlin.idea.core.script.scriptingErrorLog
|
||||
import org.jetbrains.kotlin.idea.core.util.readNullable
|
||||
import org.jetbrains.kotlin.idea.core.util.readStringList
|
||||
import org.jetbrains.kotlin.idea.core.util.writeNullable
|
||||
|
||||
+1
-2
@@ -8,12 +8,11 @@ package org.jetbrains.kotlin.idea.scripting.gradle.roots
|
||||
import com.intellij.openapi.vfs.LocalFileSystem
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import org.jetbrains.annotations.TestOnly
|
||||
import org.jetbrains.kotlin.idea.core.script.scriptingDebugLog
|
||||
import org.jetbrains.kotlin.idea.core.script.ucache.ScriptClassRootsBuilder
|
||||
import org.jetbrains.kotlin.idea.scripting.gradle.GradleScriptDefinitionsContributor
|
||||
import org.jetbrains.kotlin.idea.scripting.gradle.LastModifiedFiles
|
||||
import org.jetbrains.kotlin.idea.scripting.gradle.importing.KotlinDslScriptModel
|
||||
import org.jetbrains.kotlin.idea.scripting.gradle.scriptingDebugLog
|
||||
import org.jetbrains.kotlin.idea.scripting.gradle.scriptingErrorLog
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.resolve.VirtualFileScriptSource
|
||||
import org.jetbrains.plugins.gradle.settings.GradleProjectSettings
|
||||
|
||||
+3
@@ -21,6 +21,9 @@ import org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManager
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.CompositeScriptConfigurationManager
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.DefaultScriptingSupport
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.ScriptingSupport
|
||||
import org.jetbrains.kotlin.idea.core.script.scriptingDebugLog
|
||||
import org.jetbrains.kotlin.idea.core.script.scriptingErrorLog
|
||||
import org.jetbrains.kotlin.idea.core.script.scriptingInfoLog
|
||||
import org.jetbrains.kotlin.idea.core.script.ucache.ScriptClassRootsBuilder
|
||||
import org.jetbrains.kotlin.idea.core.util.EDT
|
||||
import org.jetbrains.kotlin.idea.scripting.gradle.*
|
||||
|
||||
@@ -76,20 +76,4 @@ fun kotlinDslScriptsModelImportSupported(currentGradleVersion: String): Boolean
|
||||
}
|
||||
|
||||
fun getGradleProjectSettings(project: Project): Collection<GradleProjectSettings> =
|
||||
(ExternalSystemApiUtil.getSettings(project, GradleConstants.SYSTEM_ID) as GradleSettings).linkedProjectsSettings
|
||||
|
||||
private val logger = Logger.getInstance("#org.jetbrains.kotlin.idea.scripting.gradle")
|
||||
|
||||
fun scriptingDebugLog(message: () -> String) {
|
||||
if (logger.isDebugEnabled) {
|
||||
logger.debug("[KOTLIN_GRADLE_DSL] ${message()}")
|
||||
}
|
||||
}
|
||||
|
||||
fun scriptingInfoLog(message: String) {
|
||||
logger.info("[KOTLIN_GRADLE_DSL] $message")
|
||||
}
|
||||
|
||||
fun scriptingErrorLog(message: String, throwable: Throwable?) {
|
||||
logger.error("[KOTLIN_GRADLE_DSL] $message", throwable)
|
||||
}
|
||||
(ExternalSystemApiUtil.getSettings(project, GradleConstants.SYSTEM_ID) as GradleSettings).linkedProjectsSettings
|
||||
Reference in New Issue
Block a user