use of org.cubeengine.logscribe.Log in project core by CubeEngine.
the class LogProvider method getLogger.
public Log getLogger(Class owner, String name, boolean module) {
String longName = owner.getName() + "#" + name;
Log logger = loggers.get(longName);
if (logger != null) {
return logger;
}
Log baseLogger = logFactory.getLog(LogFactory.class, "CubeEngine");
if (module) {
logger = logFactory.getLog(owner, name);
logger.addTarget(new AsyncFileTarget.Builder(LoggingUtil.getLogFile(fm, name).toPath(), LoggingUtil.getFileFormat(true, true)).setAppend(true).setCycler(LoggingUtil.getCycler()).setThreadFactory(mm.getThreadFactory(owner)).build());
// delegate to main logger
LogTarget parentTarget = logger.addDelegate(baseLogger);
parentTarget.appendFilter(new PrefixFilter("[" + name + "] "));
} else {
logger = logFactory.getLog(owner, name);
// delegate to main logger
LogTarget parentTarget = logger.addDelegate(baseLogger);
parentTarget.appendFilter(new PrefixFilter("[" + name + "] "));
// TODO manually add Target for non-modules
}
this.loggers.put(longName, logger);
return logger;
}
use of org.cubeengine.logscribe.Log in project core by CubeEngine.
the class SpongeLogFactory method init.
public void init(ThreadFactory tf) {
this.tf = tf;
// configure main file logger
AsyncFileTarget mainFileTarget = new AsyncFileTarget.Builder(LoggingUtil.getLogFile(fm, "main").toPath(), LoggingUtil.getFileFormat(true, true)).setAppend(true).setCycler(getCycler()).setThreadFactory(tf).build();
mainFileTarget.setLevel(config.fileLevel);
mainLogger.addTarget(mainFileTarget);
// configure exception logger
Log exLog = getLog(LogFactory.class, "Exceptions");
exLog.addTarget(new AsyncFileTarget.Builder(LoggingUtil.getLogFile(fm, "Exceptions").toPath(), LoggingUtil.getFileFormat(true, false)).setAppend(true).setCycler(getCycler()).setThreadFactory(tf).build());
// hook into Minecraft Console Logger
ExceptionAppender exceptionAppender = new ExceptionAppender(exLog);
exceptionAppender.start();
((Logger) LogManager.getLogger("Minecraft")).addAppender(exceptionAppender);
baseTarget.getHandle().addAppender(exceptionAppender);
if (!config.logCommands) {
CommandLogging.disable();
}
}
use of org.cubeengine.logscribe.Log in project core by CubeEngine.
the class SpongeLogFactory method getLog.
@Override
public Log getLog(Class<?> clazz, String id) {
if (config.logCommands && clazz.equals(CommandManager.class)) {
Log cmdLogger = super.getLog(clazz, id);
cmdLogger.addTarget(new AsyncFileTarget.Builder(LoggingUtil.getLogFile(fm, "commands").toPath(), LoggingUtil.getFileFormat(true, false)).setAppend(true).setCycler(getCycler()).setThreadFactory(tf).build());
return cmdLogger;
}
return super.getLog(clazz, id);
}
use of org.cubeengine.logscribe.Log in project core by CubeEngine.
the class FileManager method loadConfig.
public <T extends ReflectedFile<?, ?, ?>> T loadConfig(Object instance, Class<T> clazz) {
T config = reflector.create(clazz);
Path path = mm.getPathFor(instance.getClass());
Log logger = mm.getLoggerFor(instance.getClass());
config.setFile(path.resolve("config." + config.getCodec().getExtension()).toFile());
if (config.reload(true)) {
logger.info("Saved new configuration file! config.{}", config.getCodec().getExtension());
}
return config;
}
Aggregations