From 43e83b7e1163b68328c33ccfb1d1368672537fe5 Mon Sep 17 00:00:00 2001 From: Torsten Kruse Date: Fri, 5 Nov 2021 17:32:33 +0100 Subject: [PATCH] avoid logging empty lines, so removing complete log lines becomes possible (#2) --- .../java/com/tsystems/sbs/LogFileFilterOutputStream.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/tsystems/sbs/LogFileFilterOutputStream.java b/src/main/java/com/tsystems/sbs/LogFileFilterOutputStream.java index 64dac69..23e9cac 100644 --- a/src/main/java/com/tsystems/sbs/LogFileFilterOutputStream.java +++ b/src/main/java/com/tsystems/sbs/LogFileFilterOutputStream.java @@ -32,6 +32,8 @@ public class LogFileFilterOutputStream extends LineTransformationOutputStream { private final List defaultRegexpPairs; private final List customRegexpPairs; private final String jobName; + + private final Pattern AT_LEAST_ONE_NON_WHITESPACE_PATTERN = Pattern.compile(".*\\S.*\\r?\\n?"); public LogFileFilterOutputStream(OutputStream out, Charset charset, String jobName, LogFileFilterConfig config) { @@ -100,7 +102,10 @@ protected void eol(byte[] bytes, int len) throws IOException { LOGGER.log(Level.FINE, "Filtered logfile for {0} output ''{1}''.", new Object[]{jobName, line}); } - logger.write(line.getBytes(charset)); + + if (AT_LEAST_ONE_NON_WHITESPACE_PATTERN.matcher(line).matches()) { + logger.write(line.getBytes(charset)); + } } else { // no change, write the bytes as-is to avoid messing with the encoding logger.write(bytes, 0, len);