Skip to content

Commit 6099237

Browse files
committed
iter
1 parent 90155d1 commit 6099237

File tree

4 files changed

+55
-4
lines changed

4 files changed

+55
-4
lines changed

libs/logging/src/main/java/org/elasticsearch/logging/internal/spi/LoggerFactory.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ public static LoggerFactory provider() {
2929

3030
public abstract void setRootLevel(Level level);
3131

32+
public abstract Level getRootLevel();
33+
3234
public static void setInstance(LoggerFactory INSTANCE) {
3335
LoggerFactory.INSTANCE = INSTANCE;
3436
}

server/src/main/java/org/elasticsearch/common/logging/internal/LevelUtil.java

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,51 @@
99

1010
package org.elasticsearch.common.logging.internal;
1111

12+
import static org.apache.logging.log4j.Level.ALL;
13+
import static org.apache.logging.log4j.Level.DEBUG;
14+
import static org.apache.logging.log4j.Level.ERROR;
15+
import static org.apache.logging.log4j.Level.FATAL;
16+
import static org.apache.logging.log4j.Level.INFO;
17+
import static org.apache.logging.log4j.Level.OFF;
18+
import static org.apache.logging.log4j.Level.TRACE;
19+
import static org.apache.logging.log4j.Level.WARN;
20+
1221
public final class LevelUtil {
1322

1423
private LevelUtil() {}
1524

1625
public static org.apache.logging.log4j.Level log4jLevel(final org.elasticsearch.logging.Level level) {
1726
return switch (level) {
18-
case OFF -> org.apache.logging.log4j.Level.OFF;
19-
case FATAL -> org.apache.logging.log4j.Level.FATAL;
27+
case OFF -> OFF;
28+
case FATAL -> FATAL;
2029
case ERROR -> org.apache.logging.log4j.Level.ERROR;
21-
case WARN -> org.apache.logging.log4j.Level.WARN;
30+
case WARN -> WARN;
2231
case INFO -> org.apache.logging.log4j.Level.INFO;
2332
case DEBUG -> org.apache.logging.log4j.Level.DEBUG;
24-
case TRACE -> org.apache.logging.log4j.Level.TRACE;
33+
case TRACE -> TRACE;
2534
case ALL -> org.apache.logging.log4j.Level.ALL;
2635
};
2736
}
37+
38+
public static org.elasticsearch.logging.Level elasticsearchLevel(final org.apache.logging.log4j.Level log4jLevel) {
39+
// we can't use a switch because log4j levels are not an enum
40+
if (log4jLevel == OFF) {
41+
return org.elasticsearch.logging.Level.OFF;
42+
} else if (log4jLevel == FATAL) {
43+
return org.elasticsearch.logging.Level.FATAL;
44+
} else if (log4jLevel == ERROR) {
45+
return org.elasticsearch.logging.Level.ERROR;
46+
} else if (log4jLevel == WARN) {
47+
return org.elasticsearch.logging.Level.WARN;
48+
} else if (log4jLevel == INFO) {
49+
return org.elasticsearch.logging.Level.INFO;
50+
} else if (log4jLevel == DEBUG) {
51+
return org.elasticsearch.logging.Level.DEBUG;
52+
} else if (log4jLevel == TRACE) {
53+
return org.elasticsearch.logging.Level.TRACE;
54+
} else if (log4jLevel == ALL) {
55+
return org.elasticsearch.logging.Level.ALL;
56+
}
57+
throw new AssertionError("unknown log4j level [" + log4jLevel + "]");
58+
}
2859
}

server/src/main/java/org/elasticsearch/common/logging/internal/LoggerFactoryImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,9 @@ public void setRootLevel(Level level) {
3838
var log4jLevel = LevelUtil.log4jLevel(level);
3939
Loggers.setLevel(LogManager.getRootLogger(), log4jLevel);
4040
}
41+
42+
@Override
43+
public Level getRootLevel() {
44+
return LevelUtil.elasticsearchLevel(LogManager.getRootLogger().getLevel());
45+
}
4146
}

test/framework/src/main/java/org/elasticsearch/cli/CommandTestCase.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,13 @@
99

1010
package org.elasticsearch.cli;
1111

12+
import org.elasticsearch.common.logging.internal.LevelUtil;
13+
import org.elasticsearch.logging.Level;
14+
import org.elasticsearch.logging.LogManager;
15+
import org.elasticsearch.logging.internal.spi.LoggerFactory;
1216
import org.elasticsearch.test.ESTestCase;
1317
import org.hamcrest.Matcher;
18+
import org.junit.After;
1419
import org.junit.Before;
1520

1621
import java.io.IOException;
@@ -43,6 +48,8 @@ public abstract class CommandTestCase extends ESTestCase {
4348
/** The ES config dir */
4449
protected Path configDir;
4550

51+
private Level capturedLogLevel;
52+
4653
/** Whether to include a whitespace in the file-system path. */
4754
private final boolean spaceInPath;
4855

@@ -56,6 +63,7 @@ protected CommandTestCase(boolean spaceInPath) {
5663

5764
@Before
5865
public void resetTerminal() throws IOException {
66+
capturedLogLevel = LoggerFactory.provider().getRootLevel();
5967
terminal.reset();
6068
terminal.setSupportsBinary(false);
6169
terminal.setVerbosity(Terminal.Verbosity.NORMAL);
@@ -73,6 +81,11 @@ public void resetTerminal() throws IOException {
7381
envVars.clear();
7482
}
7583

84+
@After
85+
public void restoreRootLogLevel() {
86+
LoggerFactory.provider().setRootLevel(capturedLogLevel);
87+
}
88+
7689
/** Creates a Command to test execution. */
7790
protected abstract Command newCommand();
7891

0 commit comments

Comments
 (0)