/** * * Copyright (c) 2014, the Railo Company Ltd. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. * **/ package lucee.commons.io.log.log4j.appender; import lucee.commons.io.log.log4j.appender.task.Task; import lucee.runtime.config.Config; import lucee.runtime.spooler.SpoolerEngine; import org.apache.log4j.Appender; import org.apache.log4j.Layout; import org.apache.log4j.spi.ErrorHandler; import org.apache.log4j.spi.Filter; import org.apache.log4j.spi.LoggingEvent; public class TaskAppender implements Appender,AppenderState { private Appender appender; private SpoolerEngine spoolerEngine; private boolean closed; public TaskAppender(Config config,Appender appender){ if(appender instanceof AppenderState) closed=((AppenderState)appender).isClosed(); this.appender=appender; spoolerEngine = config.getSpoolerEngine(); } @Override public void doAppend(LoggingEvent le) { spoolerEngine.add(new Task(appender,le)); } @Override public void addFilter(Filter arg0) { appender.addFilter(arg0); } @Override public void clearFilters() { appender.clearFilters(); } @Override public void close() { closed=true; appender.close(); } @Override public ErrorHandler getErrorHandler() { return appender.getErrorHandler(); } @Override public Filter getFilter() { return appender.getFilter(); } @Override public Layout getLayout() { return appender.getLayout(); } @Override public String getName() { return appender.getName(); } @Override public boolean requiresLayout() { return appender.requiresLayout(); } @Override public void setErrorHandler(ErrorHandler arg0) { appender.setErrorHandler(arg0); } @Override public void setLayout(Layout arg0) { appender.setLayout(arg0); } @Override public void setName(String arg0) { appender.setName(arg0); } @Override public boolean isClosed() { return closed; } }