com.github.markusbernhardt.proxy.util.Logger Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of proxy-vole Show documentation
Show all versions of proxy-vole Show documentation
Proxy Vole is a Java library to auto detect the platform network proxy settings.
package com.github.markusbernhardt.proxy.util;
/*****************************************************************************
* Simple logging support for the framework. You need to add an logging listener
* that needs to send the logging events to an backend.
*
* @author Markus Bernhardt, Copyright 2016
* @author Bernd Rosstauscher, Copyright 2009
****************************************************************************/
public class Logger {
public enum LogLevel {
ERROR, WARNING, INFO, TRACE, DEBUG
}
/*****************************************************************************
* Interface for an logging backend that can be attached to the logger.
****************************************************************************/
public interface LogBackEnd {
/*************************************************************************
* Invoked for every logging event.
*
* @param clazz
* the class that sends the log message.
* @param loglevel
* the logging level.
* @param msg
* the message format string.
* @param params
* the message parameters for the format string.
************************************************************************/
public void log(Class clazz, LogLevel loglevel, String msg, Object... params);
/*************************************************************************
* Can be used to test if a given logging level is enabled.
*
* @param logLevel
* the loglevel to test.
* @return true if enabled, else false.
************************************************************************/
public boolean isLogginEnabled(LogLevel logLevel);
}
private static LogBackEnd backend;
/*************************************************************************
* Gets the currently attached logging backend.
*
* @return Returns the backend.
************************************************************************/
public static LogBackEnd getBackend() {
return backend;
}
/*************************************************************************
* Attaches a new logging backend replacing the existing one.
*
* @param backend
* The backend to set.
************************************************************************/
public static void setBackend(LogBackEnd backend) {
Logger.backend = backend;
}
/*************************************************************************
* Logs a message.
*
* @param clazz
* the class that sends the log message.
* @param loglevel
* the logging level.
* @param msg
* the message format string.
* @param params
* the message parameters for the format string.
************************************************************************/
public static void log(Class clazz, LogLevel loglevel, String msg, Object... params) {
if (backend != null) {
backend.log(clazz, loglevel, msg, params);
}
}
/*************************************************************************
* Can be used to test if a given logging level is enabled.
*
* @param logLevel
* the loglevel to test.
* @return true if enabled, else false.
************************************************************************/
public static boolean isLogginEnabled(LogLevel logLevel) {
if (backend != null) {
return backend.isLogginEnabled(logLevel);
}
return false;
}
}