All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.log4j.varia.LevelMatchFilter Maven / Gradle / Ivy

There is a newer version: 6.1.2
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.apache.log4j.varia;

import org.apache.log4j.Level;
import org.apache.log4j.spi.Filter;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.log4j.helpers.OptionConverter;

/**
 * This is a very simple filter based on level matching.
 * 
 * 

* The filter admits two options LevelToMatch and AcceptOnMatch. * If there is an exact match between the value of the LevelToMatch * option and the level of the {@link LoggingEvent}, then the {@link #decide} * method returns {@link Filter#ACCEPT} in case the AcceptOnMatch option * value is set to true, if it is false then * {@link Filter#DENY} is returned. If there is no match, {@link Filter#NEUTRAL} * is returned. * * @author Ceki Gülcü * * @since 1.2 */ public class LevelMatchFilter extends Filter { /** * Do we return ACCEPT when a match occurs. Default is true. */ boolean acceptOnMatch = true; /** */ Level levelToMatch; public void setLevelToMatch(String level) { levelToMatch = OptionConverter.toLevel(level, null); } public String getLevelToMatch() { return levelToMatch == null ? null : levelToMatch.toString(); } public void setAcceptOnMatch(boolean acceptOnMatch) { this.acceptOnMatch = acceptOnMatch; } public boolean getAcceptOnMatch() { return acceptOnMatch; } /** * Return the decision of this filter. * * Returns {@link Filter#NEUTRAL} if the LevelToMatch option is not set * or if there is not match. Otherwise, if there is a match, then the returned * decision is {@link Filter#ACCEPT} if the AcceptOnMatch property is set * to true. The returned decision is {@link Filter#DENY} if the * AcceptOnMatch property is set to false. * */ public int decide(LoggingEvent event) { if (this.levelToMatch == null) { return Filter.NEUTRAL; } boolean matchOccured = false; if (this.levelToMatch.equals(event.getLevel())) { matchOccured = true; } if (matchOccured) { if (this.acceptOnMatch) return Filter.ACCEPT; else return Filter.DENY; } else { return Filter.NEUTRAL; } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy