Skip to content

Commit c452870

Browse files
authored
feat: Add multi-window console logging capability (#1235)
1 parent 6cf8830 commit c452870

22 files changed

+433
-235
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ plugin_version=2.8.0.212.0
33
kotlin.code.style=official
44
kotlin_version=2.1.0
55
junit_version=5.9.2
6-
itangcent_intellij_version=1.7.55
6+
itangcent_intellij_version=1.7.7

idea-plugin/src/main/kotlin/com/itangcent/debug/LoggerCollector.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
package com.itangcent.debug
22

33
import com.itangcent.debug.LoggerCollector.Companion.buffer
4-
import com.itangcent.intellij.logger.AbstractLogger
4+
import com.itangcent.intellij.logger.Level
55
import com.itangcent.intellij.logger.Logger
66

77
/**
88
*
99
* This interface represents [Logger] which collect all appended logs to a buffer.
1010
*/
11-
class LoggerCollector : AbstractLogger() {
11+
class LoggerCollector : Logger {
1212

13-
override fun processLog(logData: String?) {
14-
buffer.append(logData)
15-
.appendLine()
13+
override fun log(level: Level, msg: String) {
14+
buffer.append("[${level.name}]\t$msg").appendLine()
1615
}
1716

1817
companion object {

idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/actions/BasicAnAction.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@ import com.itangcent.common.spi.Setup
66
import com.itangcent.common.spi.SpiUtils
77
import com.itangcent.idea.config.CachedResourceResolver
88
import com.itangcent.idea.plugin.Initializer
9-
import com.itangcent.idea.utils.ConfigurableLogger
109
import com.itangcent.intellij.actions.KotlinAnAction
1110
import com.itangcent.intellij.config.resource.ResourceResolver
1211
import com.itangcent.intellij.context.ActionContext
1312
import com.itangcent.intellij.context.ActionContextBuilder
1413
import com.itangcent.intellij.extend.guice.singleton
1514
import com.itangcent.intellij.extend.guice.with
1615
import com.itangcent.intellij.jvm.kotlin.KotlinAutoInject
17-
import com.itangcent.intellij.logger.IdeaConsoleLogger
1816
import com.itangcent.intellij.logger.Logger
17+
import com.itangcent.intellij.logger.MultiWindowConsoleLogger
1918
import com.itangcent.intellij.spi.IdeaAutoInject
2019
import com.itangcent.intellij.tip.OnlyOnceInContextTipSetup
20+
import com.itangcent.logger.LoggerProvider
2121
import javax.swing.Icon
2222

2323
abstract class BasicAnAction : KotlinAnAction {
@@ -34,8 +34,7 @@ abstract class BasicAnAction : KotlinAnAction {
3434

3535
super.onBuildActionContext(event, builder)
3636

37-
builder.bind(Logger::class) { it.with(ConfigurableLogger::class).singleton() }
38-
builder.bind(Logger::class, "delegate.logger") { it.with(IdeaConsoleLogger::class).singleton() }
37+
builder.bind(Logger::class) { it.toProvider(LoggerProvider::class.java).singleton() }
3938

4039
builder.bind(ResourceResolver::class) { it.with(CachedResourceResolver::class).singleton() }
4140

idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/api/export/core/RequestClassExporter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ abstract class RequestClassExporter : ClassExporter {
125125
}
126126

127127
shouldIgnore(cls) -> {
128-
logger.info("ignore class:$clsQualifiedName")
128+
logger.debug("ignore class:$clsQualifiedName")
129129
return true
130130
}
131131
}

idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/api/export/generic/GenericMethodDocClassExporter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ open class GenericMethodDocClassExporter : ClassExporter {
115115
return false
116116
}
117117
shouldIgnore(cls) -> {
118-
logger.info("ignore class: $clsQualifiedName")
118+
logger.debug("ignore class: $clsQualifiedName")
119119
disposable()
120120
return true
121121
}

idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/api/export/generic/SimpleGenericMethodDocClassExporter.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ open class SimpleGenericMethodDocClassExporter : ClassExporter {
4141
}
4242

4343
@Inject
44-
private val logger: Logger? = null
44+
private lateinit var logger: Logger
4545

4646
@Inject
4747
protected val settingBinder: SettingBinder? = null
@@ -72,12 +72,12 @@ open class SimpleGenericMethodDocClassExporter : ClassExporter {
7272
}
7373

7474
shouldIgnore(cls) -> {
75-
logger!!.info("ignore class: $clsQualifiedName")
75+
logger.debug("ignore class: $clsQualifiedName")
7676
return true
7777
}
7878

7979
else -> {
80-
logger!!.info("search api from: $clsQualifiedName")
80+
logger.info("search api from: $clsQualifiedName")
8181

8282
val fields = linkedMapOf<String, Any?>()
8383

@@ -91,7 +91,7 @@ open class SimpleGenericMethodDocClassExporter : ClassExporter {
9191
}
9292
}
9393
} catch (e: Exception) {
94-
logger!!.traceError(e)
94+
logger.traceError(e)
9595
}
9696

9797
return true

idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/api/export/generic/SimpleGenericRequestClassExporter.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ open class SimpleGenericRequestClassExporter : ClassExporter {
4444
}
4545

4646
@Inject
47-
private val logger: Logger? = null
47+
private lateinit var logger: Logger
4848

4949
@Inject
5050
private lateinit var ruleComputer: RuleComputer
@@ -68,19 +68,19 @@ open class SimpleGenericRequestClassExporter : ClassExporter {
6868
return false
6969
}
7070
shouldIgnore(cls) -> {
71-
logger!!.info("ignore class: $clsQualifiedName")
71+
logger.debug("ignore class: $clsQualifiedName")
7272
return true
7373
}
7474
else -> {
75-
logger!!.info("search api from: $clsQualifiedName")
75+
logger.info("search api from: $clsQualifiedName")
7676

7777
classApiExporterHelper.foreachPsiMethod(cls) { method ->
7878
exportMethodApi(cls, method, docHandle)
7979
}
8080
}
8181
}
8282
} catch (e: Exception) {
83-
logger!!.traceError(e)
83+
logger.traceError(e)
8484
}
8585
return true
8686
}

idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/api/export/jaxrs/SimpleJAXRSRequestClassExporter.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ open class SimpleJAXRSRequestClassExporter : ClassExporter {
5252
}
5353

5454
@Inject
55-
private val logger: Logger? = null
55+
private lateinit var logger: Logger
5656

5757
@Inject
5858
private lateinit var ruleComputer: RuleComputer
@@ -74,18 +74,18 @@ open class SimpleJAXRSRequestClassExporter : ClassExporter {
7474
return false
7575
}
7676
shouldIgnore(cls) -> {
77-
logger!!.info("ignore class: $clsQualifiedName")
77+
logger.debug("ignore class: $clsQualifiedName")
7878
return true
7979
}
8080
else -> {
81-
logger!!.info("search api from: $clsQualifiedName")
81+
logger.info("search api from: $clsQualifiedName")
8282
classApiExporterHelper.foreachPsiMethod(cls) { method ->
8383
exportMethodApi(cls, method, docHandle)
8484
}
8585
}
8686
}
8787
} catch (e: Exception) {
88-
logger!!.traceError(e)
88+
logger.traceError(e)
8989
}
9090
return true
9191
}

idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/api/export/spring/SimpleSpringRequestClassExporter.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ open class SimpleSpringRequestClassExporter : ClassExporter {
5656
}
5757

5858
@Inject
59-
private val logger: Logger? = null
59+
private lateinit var logger: Logger
6060

6161
@Inject
6262
protected lateinit var ruleComputer: RuleComputer
@@ -80,12 +80,12 @@ open class SimpleSpringRequestClassExporter : ClassExporter {
8080
}
8181

8282
shouldIgnore(cls) -> {
83-
logger!!.info("ignore class: $clsQualifiedName")
83+
logger.debug("ignore class: $clsQualifiedName")
8484
return true
8585
}
8686

8787
else -> {
88-
logger!!.info("search api from: $clsQualifiedName")
88+
logger.info("search api from: $clsQualifiedName")
8989

9090

9191
classApiExporterHelper.foreachPsiMethod(cls) { method ->
@@ -94,7 +94,7 @@ open class SimpleSpringRequestClassExporter : ClassExporter {
9494
}
9595
}
9696
} catch (e: Exception) {
97-
logger!!.traceError(e)
97+
logger.traceError(e)
9898
}
9999
return true
100100
}

0 commit comments

Comments
 (0)