/**
* Copyright 2007-2008 University Of Southern California
*
* Licensed 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 edu.isi.pegasus.common.util;
import edu.isi.pegasus.common.logging.LogManager;
import edu.isi.pegasus.common.logging.LogManagerFactory;
/**
* The default callback for the stream gobbler, that logs all the messages to
* a particular logging level. By default all the messages are logged onto the
* DEBUG level.
*
* @author Karan Vahi
* @version $Revision$
*/
public class DefaultStreamGobblerCallback implements StreamGobblerCallback {
/**
* The level on which the messages are to be logged.
*/
private int mLevel;
/**
* The instance to the logger to log messages.
*/
private LogManager mLogger;
/**
* The overloaded constructor.
*
* @param level the level on which to log.
*/
public DefaultStreamGobblerCallback(int level) {
//should do a sanity check on the levels
mLevel = level;
mLogger = LogManagerFactory.loadSingletonInstance( );
}
/**
* Callback whenever a line is read from the stream by the StreamGobbler.
* The line is logged to the level specified while initializing the
* class.
*
* @param line the line that is read.
*/
public void work(String line) {
mLogger.log( line , mLevel);
}
}