Skip to content

Commit

Permalink
GH-15684 - redirect ERROR also to stderr
Browse files Browse the repository at this point in the history
  • Loading branch information
valenad1 committed Feb 14, 2024
1 parent 7b73f6a commit 0e4d4cd
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,11 @@ public void reconfigureLog4J() {
.addAttribute("target", "SYSTEM_OUT")
.add(layoutComponentBuilder));

builder.add(builder.newAppender("stderr", "Console")
.addAttribute("target", "SYSTEM_ERR")
.add(builder.newFilter("ThresholdFilter", Filter.Result.ACCEPT, Filter.Result.DENY).addAttribute("level", Level.ERROR))
.add(layoutComponentBuilder));

builder.add(newRollingFileAppenderComponent(builder, "R1", "1MB", _getLogFilePath.apply("trace"), pattern, Level.TRACE));
builder.add(newRollingFileAppenderComponent(builder, "R2", _maxLogFileSize, _getLogFilePath.apply("debug"), pattern, Level.DEBUG));
builder.add(newRollingFileAppenderComponent(builder, "R3", _maxLogFileSize, _getLogFilePath.apply("info"), pattern, Level.INFO));
Expand All @@ -92,6 +97,7 @@ public void reconfigureLog4J() {
builder.add(newRollingFileAppenderComponent(builder, "HTTPD", "1MB", _getLogFilePath.apply("httpd"), "%d{ISO8601} " + patternTail, Level.TRACE));

AppenderRefComponentBuilder consoleAppenderRef = builder.newAppenderRef("Console");
AppenderRefComponentBuilder stderrAppenderRef = builder.newAppenderRef("stderr");

// configure loggers:
List<AppenderRefComponentBuilder> appenderReferences = new ArrayList();
Expand All @@ -102,11 +108,12 @@ public void reconfigureLog4J() {
appenderReferences.add(builder.newAppenderRef("R5"));
appenderReferences.add(builder.newAppenderRef("R6"));
appenderReferences.add(consoleAppenderRef);
appenderReferences.add(stderrAppenderRef);

builder.add(newLoggerComponent(builder, "hex", appenderReferences));
builder.add(newLoggerComponent(builder, "water", appenderReferences));
builder.add(newLoggerComponent(builder, "ai.h2o", appenderReferences));
builder.add(builder.newRootLogger(String.valueOf(L4J_LVLS[_level])).add(consoleAppenderRef));
builder.add(builder.newRootLogger(String.valueOf(L4J_LVLS[_level])).add(consoleAppenderRef).add(stderrAppenderRef));

// Turn down the logging for some class hierarchies.
builder.add(newLoggerComponent(builder, "org.apache.http", appenderReferences, "WARN"));
Expand Down
5 changes: 5 additions & 0 deletions h2o-logging/impl-log4j2/src/main/resources/log4j2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,15 @@
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<Console name="stderr" target="SYSTEM_ERR"> <!-- 2 -->
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/> <!-- 3 -->
</Console>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
<AppenderRef ref="stderr"/>
</Root>
</Loggers>
</Configuration>

0 comments on commit 0e4d4cd

Please sign in to comment.