/** * Logback: the reliable, generic, fast and flexible logging framework. * Copyright (C) 1999-2015, QOS.ch. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by * the Eclipse Foundation * * or (per the licensee's choosing) * * under the terms of the GNU Lesser General Public License version 2.1 * as published by the Free Software Foundation. */ package ch.qos.logback.access.spi; import java.util.Iterator; import java.util.List; import ch.qos.logback.core.Appender; import ch.qos.logback.core.ContextBase; import ch.qos.logback.core.filter.Filter; import ch.qos.logback.core.spi.AppenderAttachable; import ch.qos.logback.core.spi.AppenderAttachableImpl; import ch.qos.logback.core.spi.FilterAttachable; import ch.qos.logback.core.spi.FilterAttachableImpl; import ch.qos.logback.core.spi.FilterReply; /** * A minimal context implementation used by certain logback-access components, * mainly SocketServer. * * @author Sébastien Pennec */ public class AccessContext extends ContextBase implements AppenderAttachable<IAccessEvent>, FilterAttachable<IAccessEvent> { AppenderAttachableImpl<IAccessEvent> aai = new AppenderAttachableImpl<IAccessEvent>(); FilterAttachableImpl<IAccessEvent> fai = new FilterAttachableImpl<IAccessEvent>(); public void callAppenders(IAccessEvent event) { aai.appendLoopOnAppenders(event); } @Override public void addAppender(Appender<IAccessEvent> newAppender) { aai.addAppender(newAppender); } @Override public void detachAndStopAllAppenders() { aai.detachAndStopAllAppenders(); } @Override public boolean detachAppender(Appender<IAccessEvent> appender) { return aai.detachAppender(appender); } @Override public boolean detachAppender(String name) { return aai.detachAppender(name); } @Override public Appender<IAccessEvent> getAppender(String name) { return aai.getAppender(name); } @Override public boolean isAttached(Appender<IAccessEvent> appender) { return aai.isAttached(appender); } @Override public Iterator<Appender<IAccessEvent>> iteratorForAppenders() { return aai.iteratorForAppenders(); } @Override public void addFilter(Filter<IAccessEvent> newFilter) { fai.addFilter(newFilter); } @Override public void clearAllFilters() { fai.clearAllFilters(); } @Override public List<Filter<IAccessEvent>> getCopyOfAttachedFiltersList() { return fai.getCopyOfAttachedFiltersList(); } @Override public FilterReply getFilterChainDecision(IAccessEvent event) { return fai.getFilterChainDecision(event); } }