/*
* Copyright (c) 2002 Cunningham & Cunningham, Inc.
* Copyright (c) 2009-2015 by Jochen Wierum & Cologne Intelligence
*
* This file is part of FitGoodies.
*
* FitGoodies is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* FitGoodies 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with FitGoodies. If not, see <http://www.gnu.org/licenses/>.
*/
package de.cologneintelligence.fitgoodies.log4j;
import org.apache.log4j.Appender;
import org.apache.log4j.spi.AppenderAttachable;
/**
* Sinlgeton class which helps to manage loggers.
*/
public final class LogHelper {
/**
* Adds a new CaptureAppender to an existing logger.
*
* @param logger logger to use
* @param appenderName name of an existing appender which will be captured
*/
public void addCaptureToLogger(final AppenderAttachable logger,
final String appenderName) {
Appender currentAppender = logger.getAppender(appenderName);
Appender captureAppender = CaptureAppender.newAppenderFrom(currentAppender);
logger.addAppender(captureAppender);
}
/**
* Returns the CaptureAppender which captures <code>appenderName</code>.
*
* @param logger logger to use
* @param appenderName name of existing appender
* @return responsible CaptureAppender
*/
public Appender getCaptureAppender(final AppenderAttachable logger,
final String appenderName) {
return logger.getAppender(CaptureAppender.getAppenderNameFor(appenderName));
}
/**
* Removes a CaptureAppender from a logger.
*
* @param logger logger to use
* @param appenderName name of the appender which is captured
*/
public void remove(final AppenderAttachable logger, final String appenderName) {
logger.removeAppender(CaptureAppender.getAppenderNameFor(appenderName));
}
/**
* Deletes all cached log entries.
*
* @param logger logger to use
* @param appenderName name of the appender which will be cleared
*/
public void clear(final AppenderAttachable logger, final String appenderName) {
((CaptureAppender) logger.getAppender(CaptureAppender.getAppenderNameFor(
appenderName))).clear();
}
}