Skip to content

Commit dbd4f3d

Browse files
committed
Allow logger to accept print stream consumers (for throwables)
1 parent 926f72e commit dbd4f3d

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

log-utils/src/main/java/net/minecraftforge/util/logging/SimpleLogger.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
import org.jetbrains.annotations.Nullable;
88

9+
import java.io.ByteArrayOutputStream;
10+
import java.io.PrintStream;
911
import java.util.function.Consumer;
1012

1113
/**
@@ -39,6 +41,12 @@ static void setGlobal(SimpleLogger logger) {
3941

4042
void log(Level level, String message);
4143

44+
default void log(Level level, Consumer<? super PrintStream> message) {
45+
ByteArrayOutputStream os = new ByteArrayOutputStream();
46+
message.accept(new PrintStream(os));
47+
this.log(level, os.toString());
48+
}
49+
4250
enum Level {
4351
TRACE, DEBUG, QUIET, INFO, WARN, ERROR, FATAL
4452
}
@@ -47,30 +55,58 @@ default void trace(String message) {
4755
log(Level.TRACE, message);
4856
}
4957

58+
default void trace(Consumer<? super PrintStream> message) {
59+
log(Level.TRACE, message);
60+
}
61+
5062
default void debug(String message) {
5163
log(Level.DEBUG, message);
5264
}
5365

66+
default void debug(Consumer<? super PrintStream> message) {
67+
log(Level.DEBUG, message);
68+
}
69+
5470
default void quiet(String message) {
5571
log(Level.QUIET, message);
5672
}
5773

74+
default void quiet(Consumer<? super PrintStream> message) {
75+
log(Level.QUIET, message);
76+
}
77+
5878
default void info(String message) {
5979
log(Level.INFO, message);
6080
}
6181

82+
default void info(Consumer<? super PrintStream> message) {
83+
log(Level.INFO, message);
84+
}
85+
6286
default void warn(String message) {
6387
log(Level.WARN, message);
6488
}
6589

90+
default void warn(Consumer<? super PrintStream> message) {
91+
log(Level.WARN, message);
92+
}
93+
6694
default void error(String message) {
6795
log(Level.ERROR, message);
6896
}
6997

98+
default void error(Consumer<? super PrintStream> message) {
99+
log(Level.ERROR, message);
100+
}
101+
70102
default void fatal(String message) {
71103
log(Level.FATAL, message);
72104
}
73105

106+
default void fatal(Consumer<? super PrintStream> message) {
107+
log(Level.FATAL, message);
108+
}
109+
74110
abstract class Consuming implements SimpleLogger {
75111
private byte indent;
76112

0 commit comments

Comments
 (0)