
org.ioc.commons.utils.FormatterLogger Maven / Gradle / Ivy
package org.ioc.commons.utils;
import org.ioc.commons.utils.logs.IFormatterLogger;
import org.ioc.commons.utils.logs.JavaLoggingFormatterLogger;
/**
* A logger which formats messages by using {@link Format} notation.
*
* When log level is not enabled, parameters are not formatted. It avoids the
* waste of time because of parsing them.
*
* @author Jesús Lunar Pérez
*/
public class FormatterLogger implements IFormatterLogger {
public static interface Implementator {
IFormatterLogger getLogger(Class> clazz);
}
private static Implementator implementation = JavaLoggingFormatterLogger.implementator();
protected final IFormatterLogger impl;
protected FormatterLogger(IFormatterLogger impl) {
this.impl = impl;
}
/**
* Get a new instance logger for the class passed as parameter.
*
* @param clazz
* Class to log.
* @param implementation
* Specific implementation you want to use to get this logger
* @return A new instance of a logger
*/
public static FormatterLogger getLogger(Class> clazz, Implementator implementation) {
return new FormatterLogger(implementation.getLogger(clazz));
}
/**
* Get a new instance logger for the class passed as parameter.
* Implementation for this logger will be got from {@link #implementation}.
* The default implementation is {@link JavaLoggingFormatterLogger}
*
* @param clazz
* Class to log.
* @return A new instance of a logger
*/
public static FormatterLogger getLogger(Class> clazz) {
return new FormatterLogger(getImplementation().getLogger(clazz));
}
@Override
public void log(Level level, String string, Object... params) {
impl.log(level, string, params);
}
@Override
public void log(Level level, boolean cond, String string, Object... params) {
impl.log(level, cond, string, params);
}
@Override
public void trace(String string, Object... params) {
impl.trace(string, params);
}
@Override
public void trace(boolean cond, String string, Object... params) {
impl.trace(cond, string, params);
}
@Override
public void debug(String string, Object... params) {
impl.debug(string, params);
}
@Override
public void debug(boolean cond, String string, Object... params) {
impl.debug(cond, string, params);
}
@Override
public void info(String string, Object... params) {
impl.info(string, params);
}
@Override
public void info(boolean cond, String string, Object... params) {
impl.info(cond, string, params);
}
@Override
public void warn(String string, Object... params) {
impl.warn(string, params);
}
@Override
public void warn(Throwable e, String string, Object... params) {
impl.warn(e, string, params);
}
@Override
public void warn(boolean cond, String string, Object... params) {
impl.warn(cond, string, params);
}
@Override
public void warn(boolean cond, Throwable e, String string, Object... params) {
impl.warn(cond, e, string, params);
}
@Override
public void error(String string, Object... params) {
impl.error(string, params);
}
@Override
public void error(Throwable e, String string, Object... params) {
impl.error(e, string, params);
}
@Override
public void error(Throwable e) {
impl.error(e);
}
@Override
public void entering(String sourceMethod, String msg, Object... params) {
impl.entering(sourceMethod, msg, params);
}
@Override
public void entering(String sourceMethod) {
impl.entering(sourceMethod);
}
@Override
public void exiting(String sourceMethod, String msg, Object... result) {
impl.exiting(sourceMethod, msg, result);
}
@Override
public void exiting(String sourceMethod) {
impl.exiting(sourceMethod);
}
// @Override
// public void addHandler(Handler handler) {
// impl.addHandler(handler);
// }
//
@Override
public boolean isDebugEnabled() {
return impl.isDebugEnabled();
}
@Override
public boolean isInfoEnabled() {
return impl.isInfoEnabled();
}
@Override
public boolean isWarnEnabled() {
return impl.isWarnEnabled();
}
@Override
public boolean isErrorEnabled() {
return impl.isErrorEnabled();
}
@Override
public void indent() {
impl.indent();
}
@Override
public void outdent() {
impl.outdent();
}
public static Implementator getImplementation() {
return implementation;
}
public static void setImplementation(Implementator implementation) {
FormatterLogger.implementation = implementation;
}
@Override
public boolean isTraceEnabled() {
return impl.isTraceEnabled();
}
@Override
public Level getLevel() {
return impl.getLevel();
}
@Override
public FormatterLogger getParent() {
return new FormatterLogger(impl.getParent());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy