Skip to content

Commit c35d4ac

Browse files
committed
add option for loglevel
1 parent fd73ce2 commit c35d4ac

File tree

6 files changed

+54
-2
lines changed

6 files changed

+54
-2
lines changed

tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/CodegeneratorApp.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
package io.vrap.rmf.codegen.cli
44

5+
import ch.qos.logback.classic.Level
56
import io.vrap.rmf.codegen.cli.info.BuildInfo
7+
import org.slf4j.Logger
8+
import org.slf4j.LoggerFactory
69
import picocli.AutoComplete
710
import picocli.CommandLine
811
import picocli.CommandLine.Command
@@ -34,9 +37,21 @@ class RMFCommand : Callable<Int> {
3437
@Option(names = ["-h", "--help"], usageHelp = true, description = ["display this help message"])
3538
var usageHelpRequested = false
3639

40+
@Option(names = ["--loglevel"], description = ["log level"], required = false)
41+
var logLevel: LogLevel = LogLevel.INFO
42+
3743
override fun call(): Int {
3844
InternalLogger.error("Please invoke a subcommand");
3945
CommandLine(this).usage(System.out);
4046
return 0
4147
}
48+
49+
fun loglevel(): Level {
50+
return when(logLevel) {
51+
LogLevel.INFO -> Level.INFO
52+
LogLevel.WARN -> Level.WARN
53+
LogLevel.ERROR -> Level.ERROR
54+
LogLevel.DEBUG -> Level.DEBUG
55+
}
56+
}
4257
}

tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/DiffSubcommand.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.vrap.rmf.codegen.cli
22

3+
import ch.qos.logback.classic.Level
34
import com.commercetools.rmf.diff.*
45
import com.fasterxml.jackson.databind.ObjectMapper
56
import io.vrap.codegen.languages.extensions.getMethodName
@@ -11,7 +12,10 @@ import io.vrap.rmf.raml.model.modules.Api
1112
import io.vrap.rmf.raml.model.resources.Method
1213
import io.vrap.rmf.raml.model.resources.Resource
1314
import org.eclipse.emf.common.util.URI
15+
import org.slf4j.Logger
16+
import org.slf4j.LoggerFactory
1417
import picocli.CommandLine
18+
import picocli.CommandLine.ParentCommand
1519
import java.nio.charset.StandardCharsets
1620
import java.nio.file.Files
1721
import java.nio.file.Path
@@ -42,7 +46,13 @@ class DiffSubcommand : Callable<Int> {
4246
@CommandLine.Option(names = ["-s", "--severity"], description = ["Check severity", "Valid values: ${CheckSeverity.VALID_VALUES}"])
4347
var checkSeverity: CheckSeverity = CheckSeverity.FATAL
4448

49+
@ParentCommand
50+
lateinit var codegen: RMFCommand
51+
4552
override fun call(): Int {
53+
val logger: ch.qos.logback.classic.Logger = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME) as ch.qos.logback.classic.Logger
54+
logger.level = codegen.loglevel()
55+
4656
return diff()
4757
}
4858

tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/GenerateSubcommand.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.vrap.rmf.codegen.cli
22

3+
import ch.qos.logback.classic.Level
34
import io.methvin.watcher.DirectoryChangeEvent
45
import io.methvin.watcher.DirectoryWatcher
56
import io.reactivex.rxjava3.core.Observable
@@ -47,7 +48,10 @@ import io.vrap.rmf.codegen.io.FileDataSink
4748
import io.vrap.rmf.codegen.toSeconds
4849
import io.vrap.rmf.codegen.types.VrapObjectType
4950
import io.vrap.rmf.codegen.types.VrapType
51+
import org.slf4j.Logger
52+
import org.slf4j.LoggerFactory
5053
import picocli.CommandLine
54+
import picocli.CommandLine.ParentCommand
5155
import java.io.FileInputStream
5256
import java.lang.IllegalArgumentException
5357
import java.nio.file.Files
@@ -130,6 +134,9 @@ class GenerateSubcommand : Callable<Int> {
130134
@CommandLine.Option(names = ["--dry-run"], description = ["Don't write to files"], required = false )
131135
var dryRun: Boolean? = false
132136

137+
@ParentCommand
138+
lateinit var codegen: RMFCommand
139+
133140
@CommandLine.Parameters(index = "0",description = ["Api file location"])
134141
lateinit var ramlFileLocation: Path
135142

@@ -152,6 +159,9 @@ class GenerateSubcommand : Callable<Int> {
152159
}
153160

154161
override fun call(): Int {
162+
val logger: ch.qos.logback.classic.Logger = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME) as ch.qos.logback.classic.Logger
163+
logger.level = if (verbose) Level.DEBUG else codegen.loglevel()
164+
155165
RxJavaPlugins.setErrorHandler { e: Throwable -> InternalLogger.warn(e)}
156166
if(verbose){
157167
InternalLogger.logLevel = LogLevel.DEBUG

tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/ValidateSubcommand.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ import io.vrap.rmf.raml.validation.Violation
2020
import org.eclipse.emf.common.util.Diagnostic
2121
import org.eclipse.emf.common.util.URI
2222
import org.eclipse.emf.ecore.util.EcoreUtil
23+
import org.slf4j.Logger
24+
import org.slf4j.LoggerFactory
2325
import picocli.CommandLine
26+
import picocli.CommandLine.ParentCommand
2427
import java.nio.charset.StandardCharsets
2528
import java.nio.file.Files
2629
import java.nio.file.Path
@@ -82,6 +85,9 @@ class ValidateSubcommand : Callable<Int> {
8285
@CommandLine.Option(names = ["-v", "--verbose"], description = ["Verbose"])
8386
var verbose: Boolean = false;
8487

88+
@ParentCommand
89+
lateinit var codegen: RMFCommand
90+
8591
lateinit var modelBuilder: RamlModelBuilder
8692

8793
private fun linkURI(): java.net.URI {
@@ -97,6 +103,9 @@ class ValidateSubcommand : Callable<Int> {
97103
}
98104

99105
override fun call(): Int {
106+
val logger: ch.qos.logback.classic.Logger = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME) as ch.qos.logback.classic.Logger
107+
logger.level = codegen.loglevel()
108+
100109
if (listRules) {
101110
println("Available validators:")
102111
println(ValidatorSetup.allValidatorRules().joinToString("\n"));

tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/VerifySubcommand.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@ import io.reactivex.rxjava3.core.Observable
66
import io.reactivex.rxjava3.schedulers.Schedulers
77
import io.vrap.rmf.raml.model.RamlModelBuilder
88
import org.eclipse.emf.common.util.URI
9+
import org.slf4j.Logger
10+
import org.slf4j.LoggerFactory
911
import picocli.CommandLine
12+
import picocli.CommandLine.ParentCommand
1013
import java.nio.file.Path
1114
import java.util.*
1215
import java.util.concurrent.Callable
@@ -26,7 +29,13 @@ class VerifySubcommand : Callable<Int> {
2629
@CommandLine.Option(names = ["-w", "--watch"], description = ["Watches the files for changes"], required = false)
2730
var watch: Boolean = false
2831

32+
@ParentCommand
33+
lateinit var codegen: RMFCommand
34+
2935
override fun call(): Int {
36+
val logger: ch.qos.logback.classic.Logger = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME) as ch.qos.logback.classic.Logger
37+
logger.level = codegen.loglevel()
38+
3039
val res = safeRun { verify()}
3140
if (watch) {
3241
val watchDir = ramlFileLocation.toRealPath().toAbsolutePath().parent

tools/cli-application/src/main/resources/logback.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
<pattern>%msg%n</pattern>
55
</encoder>
66
</appender>
7-
<variable name="LOGLEVEL" value="${LOGLEVEL:-INFO}" />
8-
<root level="${LOGLEVEL}">
7+
<root level="info">
98
<appender-ref ref="STDOUT" />
109
</root>
1110
</configuration>

0 commit comments

Comments
 (0)