Skip to content

Instantly share code, notes, and snippets.

@rowdyrotifer
Created July 13, 2016 06:37
Show Gist options
  • Save rowdyrotifer/d21ac9b3decd65c88a9171d5d6aeb858 to your computer and use it in GitHub Desktop.
Save rowdyrotifer/d21ac9b3decd65c88a9171d5d6aeb858 to your computer and use it in GitHub Desktop.
Wrapper around Bukkit JavaPlugin logger since there seems to be no easy way (that I know of) to change the log levels that are outputted to the console. This logs everything (with prefixes) at the info level but only actually logs if the set level is high enough.
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.plugin.java.JavaPlugin;
/**
* Wrapper around the logger as the log level
* features of Bukkit seem to be lacking :(
*
* @author Mark Lalor
*/
public class BetterLogger
{
private Logger logger;
private Level level;
public BetterLogger(JavaPlugin plugin)
{
this.logger = plugin.getLogger();
this.level = Level.INFO;
}
public Logger getSpleefLogger()
{
return logger;
}
public Level getLogLevel()
{
return level;
}
public void setLogLevel(Level level)
{
this.level = level;
}
public void setLogLevel(String level)
{
setLogLevel(Level.parse(level.toUpperCase()));
}
private static String prefix(Level level, String msg)
{
return "[" + level.getName() + "] " + msg;
}
private boolean shouldLog(Level level)
{
return level.intValue() >= this.level.intValue();
}
public void log(Level level, String message, Object param1)
{
if(shouldLog(level))
logger.log(Level.INFO, prefix(level, message), param1);
}
public void log(Level level, String message, Object... params)
{
if(shouldLog(level))
logger.log(Level.INFO, prefix(level, message), params);
}
public void log(Level level, String message)
{
if(shouldLog(level))
logger.log(Level.INFO, prefix(level, message));
}
public void fine(String message)
{
log(Level.FINE, message);
}
public void fine(String message, Object param1)
{
log(Level.FINE, message, param1);
}
public void fine(String message, Object... params)
{
log(Level.FINE, message, params);
}
public void finer(String message)
{
log(Level.FINER, message);
}
public void finer(String message, Object param1)
{
log(Level.FINER, message, param1);
}
public void finer(String message, Object... params)
{
log(Level.FINER, message, params);
}
public void finest(String message)
{
log(Level.FINEST, message);
}
public void finest(String message, Object param1)
{
log(Level.FINEST, message, param1);
}
public void finest(String message, Object... params)
{
log(Level.FINEST, message, params);
}
public void info(String message)
{
log(Level.INFO, message);
}
public void info(String message, Object param1)
{
log(Level.INFO, message, param1);
}
public void info(String message, Object... params)
{
log(Level.INFO, message, params);
}
public void warning(String message)
{
log(Level.WARNING, message);
}
public void warning(String message, Object param1)
{
log(Level.WARNING, message, param1);
}
public void warning(String message, Object... params)
{
log(Level.WARNING, message, params);
}
public void severe(String message)
{
log(Level.SEVERE, message);
}
public void severe(String message, Object param1)
{
log(Level.SEVERE, message, param1);
}
public void severe(String message, Object... params)
{
log(Level.SEVERE, message, params);
}
public void warning(String message, Exception err)
{
warning(message);
if(err != null)
warning(err.getMessage());
}
public void severe(String message, Exception err)
{
severe(message);
if(err != null)
severe(err.getMessage());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment