Skip to content

Commit 97ff9b4

Browse files
authored
[cli] Optional colorized outputs (#5193)
1 parent 9e32d43 commit 97ff9b4

File tree

2 files changed

+92
-7
lines changed

2 files changed

+92
-7
lines changed

modules/openapi-generator-cli/pom.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,16 @@
6565
<transformer
6666
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
6767
</transformers>
68+
<filters>
69+
<filter>
70+
<artifact>*:*</artifact>
71+
<excludes>
72+
<exclude>META-INF/*.SF</exclude>
73+
<exclude>META-INF/*.DSA</exclude>
74+
<exclude>META-INF/*.RSA</exclude>
75+
</excludes>
76+
</filter>
77+
</filters>
6878
</configuration>
6979
</execution>
7080
</executions>
@@ -134,6 +144,11 @@
134144
<artifactId>logback-classic</artifactId>
135145
<version>1.2.3</version>
136146
</dependency>
147+
<dependency>
148+
<groupId>org.codehaus.janino</groupId>
149+
<artifactId>janino</artifactId>
150+
<version>3.1.0</version>
151+
</dependency>
137152
<dependency>
138153
<groupId>org.testng</groupId>
139154
<artifactId>testng</artifactId>
Lines changed: 77 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,20 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<configuration>
3+
4+
<!-- Prevent startup messages from Logback -->
5+
<statusListener class="ch.qos.logback.core.status.NopStatusListener" />
6+
7+
<!-- For those without color (the default) -->
8+
<property name="noColorPattern"
9+
value="[%thread] %-5level %logger{36} - %msg%n" />
10+
<!-- For those with color (with -Dcolor set) -->
11+
<property name="colorPattern"
12+
value="[%thread] %highlight(%-5level) %logger{36} - %msg%n" />
13+
314
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
415
<target>System.out</target>
516
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
6-
<pattern>[%thread] %-5level %logger{36} - %msg%n</pattern>
17+
<pattern>${noColorPattern}</pattern>
718
</encoder>
819
<filter class="ch.qos.logback.classic.filter.LevelFilter">
920
<level>ERROR</level>
@@ -14,21 +25,80 @@
1425
<appender name="STDERR" class="ch.qos.logback.core.ConsoleAppender">
1526
<target>System.err</target>
1627
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
17-
<pattern>[%thread] %-5level %logger{36} - %msg%n</pattern>
28+
<pattern>${noColorPattern}</pattern>
1829
</encoder>
1930
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
2031
<level>ERROR</level>
2132
</filter>
2233
</appender>
34+
<appender name="STDOUT_COLOR" class="ch.qos.logback.core.ConsoleAppender">
35+
<target>System.out</target>
36+
<withJansi>true</withJansi>
37+
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
38+
<pattern>${colorPattern}</pattern>
39+
</encoder>
40+
<filter class="ch.qos.logback.classic.filter.LevelFilter">
41+
<level>ERROR</level>
42+
<onMatch>DENY</onMatch>
43+
<onMismatch>NEUTRAL</onMismatch>
44+
</filter>
45+
</appender>
46+
<appender name="STDERR_COLOR" class="ch.qos.logback.core.ConsoleAppender">
47+
<target>System.err</target>
48+
<withJansi>true</withJansi>
49+
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
50+
<pattern>${colorPattern}</pattern>
51+
</encoder>
52+
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
53+
<level>ERROR</level>
54+
</filter>
55+
</appender>
56+
<appender name="ONCELOGGER_COLOR" class="ch.qos.logback.core.ConsoleAppender">
57+
<target>System.err</target>
58+
<withJansi>true</withJansi>
59+
<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
60+
<marker>ONCE</marker>
61+
</evaluator>
62+
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
63+
<pattern>[%thread] %highlight(%-5level) %logger{36} - %red(%msg)%n</pattern>
64+
</encoder>
65+
</appender>
66+
2367
<logger name="io.swagger" level="warn">
24-
<appender-ref ref="STDOUT"/>
25-
<appender-ref ref="STDERR"/>
68+
<!-- Colorize by passing -Dcolor -->
69+
<if condition='isDefined("color")'>
70+
<then>
71+
<appender-ref ref="STDOUT_COLOR"/>
72+
<appender-ref ref="STDERR_COLOR"/>
73+
</then>
74+
<else>
75+
<appender-ref ref="STDOUT"/>
76+
<appender-ref ref="STDERR"/>
77+
</else>
78+
</if>
2679
</logger>
2780
<logger name="org.openapitools" level="${log.level:-info}">
28-
<appender-ref ref="STDOUT"/>
29-
<appender-ref ref="STDERR"/>
81+
<!-- Colorize by passing -Dcolor -->
82+
<if condition='isDefined("color")'>
83+
<then>
84+
<appender-ref ref="STDOUT_COLOR"/>
85+
<appender-ref ref="STDERR_COLOR"/>
86+
</then>
87+
<else>
88+
<appender-ref ref="STDOUT"/>
89+
<appender-ref ref="STDERR"/>
90+
</else>
91+
</if>
3092
</logger>
3193
<root level="error">
32-
<appender-ref ref="STDERR"/>
94+
<!-- Colorize by passing -Dcolor -->
95+
<if condition='isDefined("color")'>
96+
<then>
97+
<appender-ref ref="STDERR_COLOR"/>
98+
</then>
99+
<else>
100+
<appender-ref ref="STDERR"/>
101+
</else>
102+
</if>
33103
</root>
34104
</configuration>

0 commit comments

Comments
 (0)