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

org.apache.log4j.varia.StringMatchFilter 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.spi.Filter;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.log4j.helpers.OptionConverter;

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

The filter admits two options StringToMatch and * AcceptOnMatch. If there is a match between the value of the * StringToMatch option and the message of the {@link org.apache.log4j.spi.LoggingEvent}, * then the {@link #decide(LoggingEvent)} method returns {@link org.apache.log4j.spi.Filter#ACCEPT} if * the AcceptOnMatch option value is true, if it is false then * {@link org.apache.log4j.spi.Filter#DENY} is returned. If there is no match, {@link * org.apache.log4j.spi.Filter#NEUTRAL} is returned. * * @author Ceki Gülcü * @since 0.9.0 */ public class StringMatchFilter extends Filter { /** @deprecated Options are now handled using the JavaBeans paradigm. This constant is not longer needed and will be removed in the near term. */ public static final String STRING_TO_MATCH_OPTION = "StringToMatch"; /** @deprecated Options are now handled using the JavaBeans paradigm. This constant is not longer needed and will be removed in the near term. */ public static final String ACCEPT_ON_MATCH_OPTION = "AcceptOnMatch"; boolean acceptOnMatch = true; String stringToMatch; /** @deprecated We now use JavaBeans introspection to configure components. Options strings are no longer needed. */ public String[] getOptionStrings() { return new String[] {STRING_TO_MATCH_OPTION, ACCEPT_ON_MATCH_OPTION}; } /** @deprecated Use the setter method for the option directly instead of the generic setOption method. */ public void setOption(String key, String value) { if(key.equalsIgnoreCase(STRING_TO_MATCH_OPTION)) { stringToMatch = value; } else if (key.equalsIgnoreCase(ACCEPT_ON_MATCH_OPTION)) { acceptOnMatch = OptionConverter.toBoolean(value, acceptOnMatch); } } public void setStringToMatch(String s) { stringToMatch = s; } public String getStringToMatch() { return stringToMatch; } public void setAcceptOnMatch(boolean acceptOnMatch) { this.acceptOnMatch = acceptOnMatch; } public boolean getAcceptOnMatch() { return acceptOnMatch; } /** Returns {@link Filter#NEUTRAL} is there is no string match. */ public int decide(LoggingEvent event) { String msg = event.getRenderedMessage(); if(msg == null || stringToMatch == null) return Filter.NEUTRAL; if( msg.indexOf(stringToMatch) == -1 ) { return Filter.NEUTRAL; } else { // we've got a match if(acceptOnMatch) { return Filter.ACCEPT; } else { return Filter.DENY; } } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy