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

com.fasterxml.clustermate.service.util.LoggerBaseImpl Maven / Gradle / Ivy

There is a newer version: 0.10.5
Show newest version
package com.fasterxml.clustermate.service.util;

import org.slf4j.helpers.MarkerIgnoringBase;
import org.slf4j.helpers.MessageFormatter;

/**
 * Helper class added to make it easier to use alternate logging
 * systems, if slf4j won't work. Implementation leaves out support
 * for debug, trace (who needs them anyway?); assumes 'warn' and 'error'
 * are enabled by default
 */
@SuppressWarnings("serial")
public abstract class LoggerBaseImpl
	extends MarkerIgnoringBase
{
    /*
    /**********************************************************************
    /* Abstract methods for impls
    /**********************************************************************
     */

	protected abstract void _debug(String message);
	protected abstract void _info(String message);
	protected abstract void _warn(String message);
	protected abstract void _error(String message);

	/*
    /**********************************************************************
    /* Level check methods
    /**********************************************************************
     */

	// Trace, Debug disabled
	@Override
	public boolean isTraceEnabled() {
		return false;
	}

	@Override
	public boolean isDebugEnabled() {
		return false;
	}
	
	@Override
	public abstract boolean isInfoEnabled();

	// By default we log warnings
	@Override
	public boolean isWarnEnabled() {
		return true;
	}

	// By default, yes, we do log errors
	@Override
	public boolean isErrorEnabled() {
		return true;
	}
	
    /*
    /**********************************************************************
    /* We never use trace, debug, add bogus impls
    /**********************************************************************
     */

	@Override
	public void trace(String msg) { }

	@Override
	public void trace(String format, Object arg) { }

	@Override
	public void trace(String format, Object arg1, Object arg2) { }

	@Override
	public void trace(String format, Object... arguments) { }

	@Override
	public void trace(String msg, Throwable t) { }

	@Override
	public void debug(String msg) { }

	@Override
	public void debug(String format, Object arg) { }

	@Override
	public void debug(String format, Object arg1, Object arg2) { }

	@Override
	public void debug(String format, Object... arguments) { }

	@Override
	public void debug(String msg, Throwable t) { }

    /*
    /**********************************************************************
    /* Info, Warn, Error are supported
    /**********************************************************************
     */

	@Override
	public void info(String msg) {
		if (isInfoEnabled()) {
			_info(msg);
		}
	}

	@Override
	public void info(String format, Object arg) {
		if (isInfoEnabled()) {
			_info(_format(format, arg));
		}
	}

	@Override
	public void info(String format, Object arg1, Object arg2) {
		if (isInfoEnabled()) {
			_info(_format(format, arg1, arg2));
		}
	}

	@Override
	public void info(String format, Object... arguments) {
		if (isInfoEnabled()) {
			_info(_format(format, arguments));
		}
	}

	@Override
	public void info(String msg, Throwable t) {
		if (isInfoEnabled()) {
			_info(_format(msg, t));
		}
	}

	@Override
	public void warn(String msg) {
		if (isWarnEnabled()) {
			_warn(_format(msg));
		}
	}

	@Override
	public void warn(String format, Object arg) {
		if (isWarnEnabled()) {
			_warn(_format(format, arg));
		}
	}

	@Override
	public void warn(String format, Object... arguments) {
		if (isWarnEnabled()) {
			_warn(_format(format, arguments));
		}
	}

	@Override
	public void warn(String format, Object arg1, Object arg2) {
		if (isWarnEnabled()) {
			_warn(_format(format, arg1, arg2));
		}
	}

	@Override
	public void warn(String msg, Throwable t) {
		if (isWarnEnabled()) {
			_warn(_format(msg, t));
		}
	}

	@Override
	public void error(String msg) {
		if (isErrorEnabled()) {
			_error(msg);
		}
	}

	@Override
	public void error(String format, Object arg) {
		if (isErrorEnabled()) {
			_error(_format(format, arg));
		}
	}

	@Override
	public void error(String format, Object arg1, Object arg2) {
		if (isErrorEnabled()) {
			_error(_format(format, arg1, arg2));
		}
	}

	@Override
	public void error(String format, Object... arguments) {
		if (isErrorEnabled()) {
			error(_format(format, arguments));
		}
	}

	@Override
	public void error(String msg, Throwable t) {
		if (isErrorEnabled()) {
			error(_format(msg, t));
		}
	}

    /*
    /**********************************************************************
    /* Helper methods needed for actual formatting, with default impls
    /**********************************************************************
     */

	protected String _format(String format, Object arg) {
		return MessageFormatter.format(format, arg).toString();
	}

	protected String _format(String format, Object arg1, Object arg2) {
		return MessageFormatter.format(format, arg1, arg2).toString();
	}

	protected String _format(String format, Object... args) {
		return MessageFormatter.format(format, args).toString();
	}

	protected String _format(String msg, Throwable t) {
		if (t == null) {
			return msg;
		}
		String etype = t.getClass().getName();
		StringBuilder sb = new StringBuilder(msg.length() + etype.length() + 3);
		sb.append(msg);
		sb.append(" (").append(t.getClass().getName()).append(")");
		return sb.toString();
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy