42 lines
1.4 KiB
Java
42 lines
1.4 KiB
Java
package tc.oc.pgm.map;
|
|
|
|
import java.util.logging.Level;
|
|
import java.util.logging.LogRecord;
|
|
import java.util.logging.Logger;
|
|
import javax.inject.Inject;
|
|
|
|
import com.google.inject.assistedinject.Assisted;
|
|
import tc.oc.commons.bukkit.logging.MapdevLogger;
|
|
import tc.oc.pgm.xml.Node;
|
|
|
|
public class MapLogger extends Logger {
|
|
|
|
public interface Factory {
|
|
MapLogger create(MapDefinition map);
|
|
}
|
|
|
|
private final MapDefinition map;
|
|
|
|
@Inject MapLogger(@Assisted MapDefinition map, MapdevLogger mapdevLogger) {
|
|
super(mapdevLogger.getName() + "." + map.getDottedPath(), null);
|
|
this.map = map;
|
|
setParent(mapdevLogger);
|
|
setUseParentHandlers(true);
|
|
}
|
|
|
|
@Override
|
|
public void log(LogRecord record) {
|
|
super.log(record instanceof MapLogRecord ? record
|
|
: new MapLogRecord(map, record));
|
|
}
|
|
|
|
public void log(Level level, Node node, String message) {
|
|
log(new MapLogRecord(map, level, node, message));
|
|
}
|
|
|
|
public void fine(Node node, String message) { log(Level.FINE, node, message); }
|
|
public void info(Node node, String message) { log(Level.INFO, node, message); }
|
|
public void warning(Node node, String message) { log(Level.WARNING, node, message); }
|
|
public void severe(Node node, String message) { log(Level.SEVERE, node, message); }
|
|
}
|