All Downloads are FREE. Search and download functionalities are using the official Maven repository.

prerna.sablecc2.comm.InMemoryConsole Maven / Gradle / Ivy

The newest version!
package prerna.sablecc2.comm;

import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Logger;
import org.apache.logging.log4j.core.LoggerContext;

import prerna.util.Utility;

public class InMemoryConsole extends Logger {
	
	// the default is mute
	public enum LOG_LEVEL {BASIC, INFO, DEBUG, WARN, FATAL, MUTE};
	private LOG_LEVEL level = LOG_LEVEL.BASIC;

	private String jobID;
	private boolean partial;
	
	public InMemoryConsole(String name, String jobId) {
		super((LoggerContext) LogManager.getContext(false), name, null);
		this.jobID = jobId;
		// set the repository
		// set the level
		setLevel(Level.INFO);
	}
	
//	public InMemoryConsole(String jobId, String className) {
//		super(className);
//		this.jobID = jobId;
//		// set the repository
//		this.repository = LogManager.getLoggerRepository();
//		// set the level
//		setLevel(Level.INFO);
//		//configure the appender
//		ConsoleAppender console = new ConsoleAppender(); //create appender
//		String PATTERN = "%d [%p|%c{1.}] %m%n";
//		console.setLayout(new EnhancedPatternLayout(PATTERN)); 
//		console.setThreshold(Level.INFO);
//		console.activateOptions();
//		//add appender to the logger
//		addAppender(console);
//	}
	
	/**
	 * 
	 * @param partial
	 */
	public void setPartial(boolean partial) {
		this.partial = partial;
	}

	public void setJobID(String jobID) {
		this.jobID = jobID;
	}
	
	@Override
	public void setLevel(Level level) {
		if(level == Level.INFO) {
			this.level = LOG_LEVEL.INFO;
		} else if(level == Level.DEBUG) {
			this.level = LOG_LEVEL.WARN;
		} else if(level == Level.FATAL) {
			this.level = LOG_LEVEL.FATAL;
		} else if(level == Level.OFF) {
			this.level = LOG_LEVEL.BASIC;
		}
		super.setLevel(level);
	}
	
	@Override
	public void info(String message)
	{
		super.info(this.jobID + " >> " + Utility.cleanLogString(message.toString()));
		if(level == LOG_LEVEL.INFO || level == LOG_LEVEL.DEBUG || level == LOG_LEVEL.WARN || level == LOG_LEVEL.FATAL) {
			if(partial) {
				PixelJobManager.getManager().addPartialOut(jobID, message + "");
			} else {
				PixelJobManager.getManager().addStdOut(jobID, message + "");
			}
		}
	}
	
	@Override
	public void debug(String message) {
		super.debug(this.jobID + " >> " + Utility.cleanLogString(message));
		if(level == LOG_LEVEL.DEBUG || level == LOG_LEVEL.WARN || level == LOG_LEVEL.FATAL) {
			PixelJobManager.getManager().addStdErr(jobID, message + "");
		}
	}
	
	@Override
	public void warn(String message)
	{
		super.warn(this.jobID + " >> " + Utility.cleanLogString(message.toString()));
		if(level == LOG_LEVEL.WARN || level == LOG_LEVEL.FATAL) {
			PixelJobManager.getManager().addStdErr(jobID, message + "");
		}
	}

	@Override
	public void fatal(String message)
	{
		super.fatal(this.jobID + " >> " + message);
		if(level == LOG_LEVEL.FATAL) {
			PixelJobManager.getManager().addStdErr(jobID, message + "");
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy