diff options
author | Logan Fick <logaldeveloper@protonmail.com> | 2019-02-08 11:29:54 -0500 |
---|---|---|
committer | Logan Fick <logaldeveloper@protonmail.com> | 2019-02-08 11:29:54 -0500 |
commit | 2a094897a0226cc286b3be52342663b9ac0d8d86 (patch) | |
tree | 9c65a9d6d1a655d519eceaeda60d464a1c921b83 /src/main/java/com/redstoner/logging/Log4JFilter.java | |
parent | bc4ec4561ed1200497a5edcd03738ec9c0a16072 (diff) | |
parent | 335a5b57d322a0a9e3b43729e240206af05c09bb (diff) |
Merged pull request #8.v5.2.0
Diffstat (limited to 'src/main/java/com/redstoner/logging/Log4JFilter.java')
-rw-r--r-- | src/main/java/com/redstoner/logging/Log4JFilter.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/main/java/com/redstoner/logging/Log4JFilter.java b/src/main/java/com/redstoner/logging/Log4JFilter.java new file mode 100644 index 0000000..1ebed09 --- /dev/null +++ b/src/main/java/com/redstoner/logging/Log4JFilter.java @@ -0,0 +1,54 @@ +package com.redstoner.logging; + +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.Marker; +import org.apache.logging.log4j.core.LogEvent; +import org.apache.logging.log4j.core.Logger; +import org.apache.logging.log4j.core.filter.AbstractFilter; +import org.apache.logging.log4j.message.Message; + +public class Log4JFilter extends AbstractFilter { + + private static final long serialVersionUID = -5594073755007974254L; + + private static Result validateMessage(Message message) { + if (message == null) { + return Result.NEUTRAL; + } + return validateMessage(message.getFormattedMessage()); + } + + private static Result validateMessage(String message) { + return PrivateLogManager.isHidden(message) + ? Result.DENY + : Result.NEUTRAL; + } + + @Override + public Result filter(LogEvent event) { + Message candidate = null; + if (event != null) { + candidate = event.getMessage(); + } + return validateMessage(candidate); + } + + @Override + public Result filter(Logger logger, Level level, Marker marker, Message msg, Throwable t) { + return validateMessage(msg); + } + + @Override + public Result filter(Logger logger, Level level, Marker marker, String msg, Object... params) { + return validateMessage(msg); + } + + @Override + public Result filter(Logger logger, Level level, Marker marker, Object msg, Throwable t) { + String candidate = null; + if (msg != null) { + candidate = msg.toString(); + } + return validateMessage(candidate); + } +}
\ No newline at end of file |