Skip to content

Commit 076bbfc

Browse files
committed
Check AIKIDO_DEBUG as well for log level
1 parent fc67065 commit 076bbfc

2 files changed

Lines changed: 73 additions & 0 deletions

File tree

agent_api/src/main/java/dev/aikido/agent_api/helpers/logging/Logger.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package dev.aikido.agent_api.helpers.logging;
22

3+
import dev.aikido.agent_api.helpers.env.BooleanEnv;
4+
35
import java.time.LocalDateTime;
46
import java.time.format.DateTimeFormatter;
57
import java.util.ArrayList;
@@ -17,6 +19,12 @@ public Logger(Class<?> logClass) {
1719
this.logLevel = DEFAULT_LOG_LEVEL;
1820
this.logClass = logClass;
1921

22+
// We first check "AIKIDO_DEBUG", because "AIKIDO_LOG_LEVEL" takes precedent.
23+
BooleanEnv aikidoDebug = new BooleanEnv("AIKIDO_DEBUG", false);
24+
if (aikidoDebug.getValue()) {
25+
this.logLevel = LogLevel.DEBUG;
26+
}
27+
// "AIKIDO_LOG_LEVEL"
2028
String logLevelString = System.getenv("AIKIDO_LOG_LEVEL");
2129
if (logLevelString != null) {
2230
try {

agent_api/src/test/java/helpers/LoggingTest.java

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,71 @@ public void testLoggerReadsEnv1(StdOut out) {
6565
assertFalse(out.capturedString().contains("TEST2"));
6666
assertFalse(out.capturedString().contains("TEST3"));
6767
}
68+
69+
@Test
70+
@SetEnvironmentVariable(key = "AIKIDO_LOG_LEVEL", value = "debug")
71+
@StdIo
72+
public void testLoggerIsDebug(StdOut out) {
73+
// Check it reads environment variable
74+
Logger logger = new Logger(FileCollector.class);
75+
logger.info("TEST1");
76+
logger.trace("TEST2");
77+
logger.debug("TEST3");
78+
logger.error("TEST4");
79+
logger.fatal("TEST5");
80+
logger.warn("TEST6");
81+
82+
assertTrue(out.capturedString().contains("INFO dev.aikido.agent_api.collectors.FileCollector: TEST1"));
83+
assertTrue(out.capturedString().contains("ERROR dev.aikido.agent_api.collectors.FileCollector: TEST4"));
84+
assertTrue(out.capturedString().contains("FATAL dev.aikido.agent_api.collectors.FileCollector: TEST5"));
85+
assertTrue(out.capturedString().contains("WARN dev.aikido.agent_api.collectors.FileCollector: TEST6"));
86+
assertFalse(out.capturedString().contains("TEST2"));
87+
assertTrue(out.capturedString().contains("TEST3"));
88+
}
89+
90+
@Test
91+
@SetEnvironmentVariable(key = "AIKIDO_DEBUG", value = "true")
92+
@StdIo
93+
public void testLoggerIsAikidoDebug(StdOut out) {
94+
// Check it reads environment variable
95+
Logger logger = new Logger(FileCollector.class);
96+
logger.info("TEST1");
97+
logger.trace("TEST2");
98+
logger.debug("TEST3");
99+
logger.error("TEST4");
100+
logger.fatal("TEST5");
101+
logger.warn("TEST6");
102+
103+
assertTrue(out.capturedString().contains("INFO dev.aikido.agent_api.collectors.FileCollector: TEST1"));
104+
assertTrue(out.capturedString().contains("ERROR dev.aikido.agent_api.collectors.FileCollector: TEST4"));
105+
assertTrue(out.capturedString().contains("FATAL dev.aikido.agent_api.collectors.FileCollector: TEST5"));
106+
assertTrue(out.capturedString().contains("WARN dev.aikido.agent_api.collectors.FileCollector: TEST6"));
107+
assertFalse(out.capturedString().contains("TEST2"));
108+
assertTrue(out.capturedString().contains("TEST3"));
109+
}
110+
111+
@Test
112+
@SetEnvironmentVariable(key = "AIKIDO_LOG_LEVEL", value = "trace")
113+
@SetEnvironmentVariable(key = "AIKIDO_DEBUG", value = "true")
114+
@StdIo
115+
public void testLogLevelTakesPrecedentOverAikidoDebug(StdOut out) {
116+
// Check it reads environment variable
117+
Logger logger = new Logger(FileCollector.class);
118+
logger.info("TEST1");
119+
logger.trace("TEST2");
120+
logger.debug("TEST3");
121+
logger.error("TEST4");
122+
logger.fatal("TEST5");
123+
logger.warn("TEST6");
124+
125+
assertTrue(out.capturedString().contains("INFO dev.aikido.agent_api.collectors.FileCollector: TEST1"));
126+
assertTrue(out.capturedString().contains("ERROR dev.aikido.agent_api.collectors.FileCollector: TEST4"));
127+
assertTrue(out.capturedString().contains("FATAL dev.aikido.agent_api.collectors.FileCollector: TEST5"));
128+
assertTrue(out.capturedString().contains("WARN dev.aikido.agent_api.collectors.FileCollector: TEST6"));
129+
assertTrue(out.capturedString().contains("TEST2"));
130+
assertTrue(out.capturedString().contains("TEST3"));
131+
}
132+
68133
@Test
69134
@SetEnvironmentVariable(key = "AIKIDO_LOG_LEVEL", value = "fatal")
70135
@StdIo

0 commit comments

Comments
 (0)