Skip to content

Commit 8bdaf0f

Browse files
committed
Add quiet and debug flags and also a simple debug configuration
1 parent 078b727 commit 8bdaf0f

File tree

4 files changed

+97
-13
lines changed

4 files changed

+97
-13
lines changed

src/main/java/org/utplsql/cli/LoggerConfiguration.java

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,55 @@
1010
import org.slf4j.LoggerFactory;
1111
import org.utplsql.api.TestRunner;
1212

13-
public class LoggerConfiguration {
13+
class LoggerConfiguration {
1414

15-
static void configureDefault() {
15+
static void configure(boolean silent, boolean debug) {
16+
if ( silent )
17+
configureSilent();
18+
else if ( debug )
19+
configureDebug();
20+
else
21+
configureDefault();
22+
}
23+
24+
private static void configureSilent() {
1625
Logger root = (Logger)LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
17-
root.setLevel(Level.INFO);
26+
root.setLevel(Level.OFF);
27+
}
1828

19-
Logger hikariLogger = (Logger) LoggerFactory.getLogger(HikariDataSource.class);
20-
hikariLogger.setLevel(Level.OFF);
29+
private static void configureDefault() {
30+
Logger root = (Logger)LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
31+
root.setLevel(Level.INFO);
2132

33+
((Logger) LoggerFactory.getLogger(HikariDataSource.class)).setLevel(Level.OFF);
2234
((Logger) LoggerFactory.getLogger(TestRunner.class)).setLevel(Level.ERROR);
2335

36+
setSingleConsoleAppenderWithLayout(root, "%msg%n");
37+
}
38+
39+
private static void configureDebug() {
40+
Logger root = (Logger)LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
41+
root.setLevel(Level.DEBUG);
42+
43+
setSingleConsoleAppenderWithLayout(root, "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n");
44+
}
45+
46+
private static void setSingleConsoleAppenderWithLayout( Logger logger, String patternLayout ) {
2447
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
2548

2649
PatternLayoutEncoder ple = new PatternLayoutEncoder();
27-
ple.setPattern("%msg%n");
50+
ple.setPattern(patternLayout);
2851

2952
ple.setContext(lc);
3053
ple.start();
3154

32-
ConsoleAppender<ILoggingEvent> consoleAppender = new ConsoleAppender<ILoggingEvent>();
55+
ConsoleAppender<ILoggingEvent> consoleAppender = new ConsoleAppender<>();
3356
consoleAppender.setEncoder(ple);
3457
consoleAppender.setContext(lc);
3558
consoleAppender.start();
3659

37-
root.detachAndStopAllAppenders();
38-
root.setAdditive(false);
39-
root.addAppender(consoleAppender);
60+
logger.detachAndStopAllAppenders();
61+
logger.setAdditive(false);
62+
logger.addAppender(consoleAppender);
4063
}
4164
}

src/main/java/org/utplsql/cli/RunCommand.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,15 @@ public class RunCommand implements ICommand {
102102
)
103103
private String excludeObjects = null;
104104

105+
@Parameter(
106+
names = {"-q", "--quiet"},
107+
description = "Does not output the informational messages normally printed to console")
108+
private boolean logSilent = false;
109+
110+
@Parameter(
111+
names = {"-d", "--debug"},
112+
description = "Outputs a load of debug information to console")
113+
private boolean logDebug = false;
105114

106115
private CompatibilityProxy compatibilityProxy;
107116
private ReporterFactory reporterFactory;
@@ -115,10 +124,12 @@ public List<String> getTestPaths() {
115124
return testPaths;
116125
}
117126

118-
public int run() {
119-
120-
LoggerConfiguration.configureDefault();
127+
public void init() {
128+
LoggerConfiguration.configure(logSilent, logDebug);
129+
}
121130

131+
public int run() {
132+
init();
122133
outputMainInformation();
123134

124135
try {

src/test/java/org/utplsql/cli/RunCommandIT.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,17 @@ public void run_Default() throws Exception {
2929
else
3030
assertEquals(0, result);
3131
}
32+
33+
@Test
34+
public void run_Debug() throws Exception {
35+
36+
int result = TestHelper.runApp("run",
37+
TestHelper.getConnectionString(),
38+
"--debug");
39+
40+
assertEquals(1, result);
41+
}
42+
3243
@Test
3344
public void run_MultipleReporters() throws Exception {
3445

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package org.utplsql.cli;
2+
3+
import ch.qos.logback.classic.Level;
4+
import ch.qos.logback.classic.Logger;
5+
import org.junit.jupiter.api.Test;
6+
import org.slf4j.LoggerFactory;
7+
8+
import static org.junit.jupiter.api.Assertions.assertEquals;
9+
10+
public class RunCommandLogLevelTest {
11+
12+
private Logger getRootLogger() {
13+
return (Logger)LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
14+
}
15+
16+
@Test
17+
void defaultIsInfo() {
18+
TestHelper.createRunCommand(TestHelper.getConnectionString())
19+
.init();
20+
21+
assertEquals(Level.INFO, getRootLogger().getLevel());
22+
}
23+
24+
@Test
25+
void silentModeSetsLoggerToOff() {
26+
TestHelper.createRunCommand(TestHelper.getConnectionString(), "-q")
27+
.init();
28+
29+
assertEquals(Level.OFF, getRootLogger().getLevel());
30+
}
31+
32+
@Test
33+
void debugModeSetsLoggerToDebug() {
34+
TestHelper.createRunCommand(TestHelper.getConnectionString(), "-d")
35+
.init();
36+
37+
assertEquals(Level.DEBUG, getRootLogger().getLevel());
38+
}
39+
}

0 commit comments

Comments
 (0)