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

net.amygdalum.testrecorder.util.Logger Maven / Gradle / Ivy

The newest version!
package net.amygdalum.testrecorder.util;

import java.io.PrintStream;

public class Logger {

	private static Logger DEBUG = debugLogger();
	private static Logger INFO = infoLogger();
	private static Logger WARN = warnLogger();
	private static Logger ERROR = errorLogger();

	private PrintStream[] out;

	public Logger(PrintStream... out) {
		this.out = out;
	}

	private static Logger debugLogger() {
		return new Logger();
	}

	private static Logger infoLogger() {
		return new Logger(System.out);
	}

	private static Logger warnLogger() {
		return new Logger(System.out);
	}

	private static Logger errorLogger() {
		return new Logger(System.err);
	}

	public static void setDEBUG(Logger debug) {
		DEBUG = debug;
	}

	public static void resetDEBUG() {
		DEBUG = warnLogger();
	}

	public static void debug(Object... msgs) {
		for (Object msg : msgs) {
			DEBUG.log(msg);
		}
	}

	public static void setINFO(Logger info) {
		INFO = info;
	}

	public static void resetINFO() {
		INFO = warnLogger();
	}

	public static void info(Object... msgs) {
		for (Object msg : msgs) {
			INFO.log(msg);
		}
	}

	public static void setWARN(Logger warn) {
		WARN = warn;
	}

	public static void resetWARN() {
		WARN = warnLogger();
	}

	public static void warn(Object... msgs) {
		for (Object msg : msgs) {
			WARN.log(msg);
		}
	}

	public static void setERROR(Logger error) {
		ERROR = error;
	}

	public static void resetERROR() {
		ERROR = errorLogger();
	}

	public static void error(Object... msgs) {
		for (Object msg : msgs) {
			ERROR.log(msg);
		}
	}

	public void log(Object msg) {
		for (int i = 0; i < out.length; i++) {
			out[i].println(msg);
			if (msg instanceof Exception) {
				((Exception) msg).printStackTrace(out[i]);
			}
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy