mirror of https://github.com/PikaMug/Quests.git
75 lines
2.8 KiB
Java
75 lines
2.8 KiB
Java
/*
|
|
* Copyright (c) 2014 PikaMug and contributors. All rights reserved.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
|
* NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
|
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
package me.blackvein.quests.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 QuestsLog4JFilter extends AbstractFilter {
|
|
|
|
private static final long serialVersionUID = -5594073755007974514L;
|
|
|
|
/**
|
|
* Validates a message and returns the {@link Result} value
|
|
* depending on whether the message contains undesirable data.
|
|
*
|
|
* @param message The message to filter for
|
|
*
|
|
* @return Result of DENY or NUETRAL
|
|
*/
|
|
private static Result validateMessage(String message) {
|
|
if (message == null) {
|
|
return Result.NEUTRAL;
|
|
}
|
|
// Hikari tries to nag author about unavoidable logger usage
|
|
if (message.contains("[PikaMug]")) {
|
|
return Result.DENY;
|
|
}
|
|
// Paper outputs errors when dependencies for module events are missing
|
|
return (message.contains("Plugin Quests") && message.contains("failed to register events"))
|
|
? Result.DENY : Result.NEUTRAL;
|
|
}
|
|
|
|
@Override
|
|
public Result filter(LogEvent event) {
|
|
if (event == null) {
|
|
return Result.NEUTRAL;
|
|
}
|
|
|
|
return validateMessage(event.getMessage().getFormattedMessage());
|
|
}
|
|
|
|
@Override
|
|
public Result filter(Logger logger, Level level, Marker marker, Message msg, Throwable t) {
|
|
return validateMessage(msg.getFormattedMessage());
|
|
}
|
|
|
|
@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) {
|
|
if (msg == null) {
|
|
return Result.NEUTRAL;
|
|
}
|
|
|
|
return validateMessage(msg.toString());
|
|
}
|
|
}
|