Newer
Older
ultramine_bukkit / src / main / java / org / bukkit / plugin / PluginLogger.java
@vlad20012 vlad20012 on 24 Feb 2017 1 KB initial
package org.bukkit.plugin;

import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;

/**
 * The PluginLogger class is a modified {@link Logger} that prepends all
 * logging calls with the name of the plugin doing the logging. The API for
 * PluginLogger is exactly the same as {@link Logger}.
 *
 * @see Logger
 */
public class PluginLogger extends Logger
{
	private String pluginName;

	/**
	 * Creates a new PluginLogger that extracts the name from a plugin.
	 *
	 * @param context A reference to the plugin
	 */
	public PluginLogger(Plugin context)
	{
		super(context.getClass().getCanonicalName(), null);
		String prefix = context.getDescription().getPrefix();
		pluginName = prefix != null ? new StringBuilder().append("[").append(prefix).append("] ").toString() : "[" + context.getDescription().getName() + "] ";
		setParent(context.getServer().getLogger());
		setLevel(Level.ALL);
	}

	@Override
	public void log(LogRecord logRecord)
	{
		logRecord.setMessage(pluginName + logRecord.getMessage());
		super.log(logRecord);
	}

}