chore: clean up STDOUT redirect code
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Johannes Frohnmeyer 2024-07-17 10:18:46 +02:00
parent c776ccf9a2
commit d36512167c
Signed by: Johannes
GPG Key ID: E76429612C2929F4
3 changed files with 20 additions and 76 deletions

View File

@ -27,7 +27,7 @@ public class LoggingOutputStream extends OutputStream {
super.flush();
String line = baos.toString();
baos.reset();
if (!line.isEmpty()) {
if (!line.isBlank()) {
logger.log(level, prefix + line.stripTrailing());
}
}

View File

@ -21,124 +21,65 @@ public class LoggingPrintStream extends PrintStream {
this.level = Objects.requireNonNull(level);
}
private void maybeLog(Object param) {
if (param instanceof String s && s.isBlank()) return;
logger.log(level, "[{0}] {1}", getCallerClassName().orElse(defaultName), param);
}
@Override
public void println(boolean x) {
Optional<String> caller = getCallerClassName();
logger.log(level, "[{0}] {1}", caller.orElse(defaultName), x);
maybeLog(x);
}
@Override
public void println(char x) {
Optional<String> caller = getCallerClassName();
logger.log(level, "[{0}] {1}", caller.orElse(defaultName), x);
maybeLog(x);
}
@Override
public void println(int x) {
Optional<String> caller = getCallerClassName();
logger.log(level, "[{0}] {1}", caller.orElse(defaultName), x);
maybeLog(x);
}
@Override
public void println(long x) {
Optional<String> caller = getCallerClassName();
logger.log(level, "[{0}] {1}", caller.orElse(defaultName), x);
maybeLog(x);
}
@Override
public void println(float x) {
Optional<String> caller = getCallerClassName();
logger.log(level, "[{0}] {1}", caller.orElse(defaultName), x);
maybeLog(x);
}
@Override
public void println(double x) {
Optional<String> caller = getCallerClassName();
logger.log(level, "[{0}] {1}", caller.orElse(defaultName), x);
maybeLog(x);
}
@Override
public void println(char @NotNull [] x) {
Optional<String> caller = getCallerClassName();
logger.log(level, "[{0}] {1}", caller.orElse(defaultName), x);
maybeLog(x);
}
@Override
public void println(@Nullable String x) {
Optional<String> caller = getCallerClassName();
logger.log(level, "[{0}] {1}", caller.orElse(defaultName), x);
maybeLog(x);
}
@Override
public void println(@Nullable Object x) {
Optional<String> caller = getCallerClassName();
logger.log(level, "[{0}] {1}", caller.orElse(defaultName), x);
maybeLog(x);
}
@Override
public void print(boolean b) {
this.println(b);
}
@Override
public void print(char c) {
this.println(c);
}
@Override
public void print(int i) {
this.println(i);
}
@Override
public void print(long l) {
this.println(l);
}
@Override
public void print(float f) {
this.println(f);
}
@Override
public void print(double d) {
this.println(d);
}
@Override
public void print(char @NotNull [] s) {
this.println(s);
}
@Override
public void print(@Nullable String s) {
this.println(s);
}
@Override
public void print(@Nullable Object obj) {
this.println(obj);
}
/*
* There's no need to override printf, as default implementation uses PrintStream.format
*/
@Override
public PrintStream format(@NotNull String format, Object... args) {
Optional<String> caller = getCallerClassName();
logger.log(level, "[{0}] {1}", caller.orElse(defaultName), new Formatter().format(format, args).toString().stripTrailing());
maybeLog(new Formatter().format(format, args).toString().stripTrailing());
return this;
}
@Override
public PrintStream format(Locale l, @NotNull String format, Object... args) {
Optional<String> caller = getCallerClassName();
logger.log(level, "[{0}] {1}", caller.orElse(defaultName), new Formatter().format(l, format, args).toString().stripTrailing());
maybeLog(new Formatter().format(l, format, args).toString().stripTrailing());
return this;
}

View File

@ -15,9 +15,12 @@ public class StdoutTest {
mlg.log(System.Logger.Level.INFO, "Hello, World!");
mlg.redirectSystemOut();
System.out.println("Hello Wrold!");
System.out.printf("Hello %s", "World");
System.out.println();
Iterator<String> iterator = mlg.iterator();
assertEquals("[I] Hello, World!", iterator.next());
assertEquals("[I] [io.gitlab.jfronny.commons.logger.test.StdoutTest] Hello Wrold!", iterator.next());
assertEquals("[I] [io.gitlab.jfronny.commons.logger.test.StdoutTest] Hello World", iterator.next());
assertFalse(iterator.hasNext());
}
}