Search in sources :

Example 1 with Log

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;
}
Also used : AsyncFileTarget(org.cubeengine.logscribe.target.file.AsyncFileTarget) PrefixFilter(org.cubeengine.logscribe.filter.PrefixFilter) Log(org.cubeengine.logscribe.Log) LogTarget(org.cubeengine.logscribe.LogTarget)

Example 2 with Log

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();
    }
}
Also used : AsyncFileTarget(org.cubeengine.logscribe.target.file.AsyncFileTarget) Log(org.cubeengine.logscribe.Log) Logger(org.apache.logging.log4j.core.Logger)

Example 3 with Log

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);
}
Also used : AsyncFileTarget(org.cubeengine.logscribe.target.file.AsyncFileTarget) CommandManager(org.cubeengine.libcube.service.command.CommandManager) Log(org.cubeengine.logscribe.Log)

Example 4 with Log

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;
}
Also used : Path(java.nio.file.Path) Log(org.cubeengine.logscribe.Log)

Aggregations

Log (org.cubeengine.logscribe.Log)4 AsyncFileTarget (org.cubeengine.logscribe.target.file.AsyncFileTarget)3 Path (java.nio.file.Path)1 Logger (org.apache.logging.log4j.core.Logger)1 CommandManager (org.cubeengine.libcube.service.command.CommandManager)1 LogTarget (org.cubeengine.logscribe.LogTarget)1 PrefixFilter (org.cubeengine.logscribe.filter.PrefixFilter)1