001/*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache license, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 *      http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the license for the specific language governing permissions and
015 * limitations under the license.
016 */
017package org.apache.logging.log4j.core.filter;
018
019import org.apache.logging.log4j.Level;
020import org.apache.logging.log4j.Marker;
021import org.apache.logging.log4j.core.Filter;
022import org.apache.logging.log4j.core.LogEvent;
023import org.apache.logging.log4j.core.Logger;
024import org.apache.logging.log4j.core.config.Node;
025import org.apache.logging.log4j.core.config.plugins.Plugin;
026import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
027import org.apache.logging.log4j.message.Message;
028import org.apache.logging.log4j.util.PerformanceSensitive;
029
030/**
031 * This filter causes all logging events to be dropped.
032 */
033@Plugin(name = "DenyAllFilter", category = Node.CATEGORY, elementType = Filter.ELEMENT_TYPE, printObject = true)
034@PerformanceSensitive("allocation")
035public final class DenyAllFilter extends AbstractFilter {
036
037    private DenyAllFilter(final Result onMatch, final Result onMismatch) {
038        super(onMatch, onMismatch);
039    }
040
041    @Override
042    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
043                         final Object... params) {
044        return Result.DENY;
045    }
046
047    @Override
048    public Result filter(final Logger logger, final Level level, final Marker marker, final Object msg,
049                         final Throwable t) {
050        return Result.DENY;
051    }
052
053    @Override
054    public Result filter(final Logger logger, final Level level, final Marker marker, final Message msg,
055                         final Throwable t) {
056        return Result.DENY;
057    }
058
059    @Override
060    public Result filter(final LogEvent event) {
061        return Result.DENY;
062    }
063
064    private Result filter(final Marker marker) {
065        return Result.DENY;
066    }
067
068    @Override
069    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
070            final Object p0) {
071        return Result.DENY;
072    }
073
074    @Override
075    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
076            final Object p0, final Object p1) {
077        return Result.DENY;
078    }
079
080    @Override
081    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
082            final Object p0, final Object p1, final Object p2) {
083        return filter(marker);
084    }
085
086    @Override
087    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
088            final Object p0, final Object p1, final Object p2, final Object p3) {
089        return Result.DENY;
090    }
091
092    @Override
093    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
094            final Object p0, final Object p1, final Object p2, final Object p3,
095            final Object p4) {
096        return Result.DENY;
097    }
098
099    @Override
100    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
101            final Object p0, final Object p1, final Object p2, final Object p3,
102            final Object p4, final Object p5) {
103        return Result.DENY;
104    }
105
106    @Override
107    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
108            final Object p0, final Object p1, final Object p2, final Object p3,
109            final Object p4, final Object p5, final Object p6) {
110        return Result.DENY;
111    }
112
113    @Override
114    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
115            final Object p0, final Object p1, final Object p2, final Object p3,
116            final Object p4, final Object p5, final Object p6,
117            final Object p7) {
118        return Result.DENY;
119    }
120
121    @Override
122    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
123            final Object p0, final Object p1, final Object p2, final Object p3,
124            final Object p4, final Object p5, final Object p6,
125            final Object p7, final Object p8) {
126        return Result.DENY;
127    }
128
129    @Override
130    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
131            final Object p0, final Object p1, final Object p2, final Object p3,
132            final Object p4, final Object p5, final Object p6,
133            final Object p7, final Object p8, final Object p9) {
134        return Result.DENY;
135    }
136
137    @Override
138    public String toString() {
139        return "DenyAll";
140    }
141
142    @PluginBuilderFactory
143    public static DenyAllFilter.Builder newBuilder() {
144        return new DenyAllFilter.Builder();
145    }
146
147    public static class Builder extends AbstractFilterBuilder<DenyAllFilter.Builder> implements org.apache.logging.log4j.core.util.Builder<DenyAllFilter> {
148
149        @Override
150        public DenyAllFilter build() {
151            return new DenyAllFilter(this.getOnMatch(), this.getOnMismatch());
152        }
153    }
154
155}