com.openpojo.log.Logger Maven / Gradle / Ivy
/*
* Copyright (c) 2010-2018 Osman Shoukry
*
* 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 com.openpojo.log;
import com.openpojo.log.utils.MessageFormatter;
/**
* The main logger interface that all code should use to communicate log messages. See java.text.MessageFormat
* For example:
*
*
* Logger log = Logger.getLog(MyClass.class);
* log.info("This is my {0}, message for {1}.", "test", new Date());
*
*
* Would log something like:
*
*
* MyClass: INFO - This is my test message for 12/01/2009.
*
*/
public abstract class Logger {
/**
* Returns true if the underlying log API's trace is enabled.
*
* @return returns true if trace is enabled.
*/
public abstract boolean isTraceEnabled();
/**
* Returns true if the underlying log API's debug is enabled.
*
* @return returns true if debug is enabled.
*/
public abstract boolean isDebugEnabled();
/**
* Returns true if the underlying log API's info is enabled.
*
* @return returns true if info is enabled.
*/
public abstract boolean isInfoEnabled();
/**
* Returns true if the underlying log API's warn is enabled.
*
* @return returns true if warn is enabled.
*/
public abstract boolean isWarnEnabled();
/**
* Returns true if the underlying log API's error is enabled.
*
* @return returns true if error is enabled.
*/
public abstract boolean isErrorEnabled();
/**
* Returns true if the underlying log API's fatal is enabled.
*
* @return returns true if fatal is enabled.
*/
public abstract boolean isFatalEnabled();
/**
* Logs a message with trace priority.
*
* @param message
* The message to log.
* @param args
* The arguments to use in text replacement.
*/
public final void trace(final String message, final Object... args) {
if (isTraceEnabled()) {
trace(format(message, args));
}
}
/**
* Logs a message with debug priority.
*
* @param message
* The message to log.
* @param args
* The arguments to use in text replacement.
*/
public final void debug(final String message, final Object... args) {
if (isDebugEnabled()) {
debug(format(message, args));
}
}
/**
* Logs a message with info priority.
*
* @param message
* The message to log.
* @param args
* The arguments to use in text replacement.
*/
public final void info(final String message, final Object... args) {
if (isInfoEnabled()) {
info(format(message, args));
}
}
/**
* Logs a message with warn priority.
*
* @param message
* The message to log.
* @param args
* The arguments to use in text replacement.
*/
public final void warn(final String message, final Object... args) {
if (isWarnEnabled()) {
warn(format(message, args));
}
}
/**
* Logs a message with error priority.
*
* @param message
* The message to log.
* @param args
* The arguments to use in text replacement.
*/
public final void error(final String message, final Object... args) {
if (isErrorEnabled()) {
error(format(message, args));
}
}
/**
* Logs a message with fatal priority.
*
* @param message
* The message to log.
* @param args
* The arguments to use in text replacement.
*/
public final void fatal(final String message, final Object... args) {
if (isFatalEnabled()) {
fatal(format(message, args));
}
}
/**
* Logs the object's toString() with trace priority.
*
* @param arg
* The object to log.
*/
public abstract void trace(final Object arg);
/**
* Logs the object's toString() with debug priority.
*
* @param message
* The object to log.
*/
public abstract void debug(final Object message);
/**
* Logs the object's toString() with info priority.
*
* @param message
* The object to log.
*/
public abstract void info(final Object message);
/**
* Logs the object's toString() with warn priority.
*
* @param message
* The object to log.
*/
public abstract void warn(final Object message);
/**
* Logs the object's toString() with error priority.
*
* @param message
* The object to log.
*/
public abstract void error(final Object message);
/**
* Logs the object's toString() with fatal priority.
*
* @param message
* The object to log.
*/
public abstract void fatal(final Object message);
/**
* This is the Logger message formatter that utilizes external formatting string util. It will use a default message
* if its ever called with "null" params.
*
* @param message
* The message to log.
* @param args
* The arguments to use in text replacement.
* @return A string format for message.
*/
private String format(final String message, final Object... args) {
return MessageFormatter.format(message, args);
}
/**
* Take a simple log message object and turn it into a string.
*
* @param message
* The message to log.
* @return A string format for message.
*/
protected String format(final Object message) {
return MessageFormatter.format(message);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy