com.chiorichan.ConsoleLogger.java Source code

Java tutorial

Introduction

Here is the source code for com.chiorichan.ConsoleLogger.java

Source

/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 * Copyright 2015 Chiori-chan. All Right Reserved.
 * 
 * @author Chiori Greene
 * @email chiorigreene@gmail.com
 */
package com.chiorichan;

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

import com.google.common.base.Strings;

public class ConsoleLogger {
    private int lineCount = 999;
    private Logger logger = null;
    private String id;

    /**
     * Attempts to find a logger based on the id provided.
     * If you would like to use your own Logger, be sure to create it
     * with the same id prior to using any of the builtin getLogger() methods
     * or you will need to use the replaceLogger() method.
     * 
     * @param loggerId
     */
    protected ConsoleLogger(String loggerId) {
        logger = LogManager.getLogManager().getLogger(loggerId);

        if (logger == null)
            logger = new ConsoleSubLogger(loggerId);

        id = loggerId;

        logger.setParent(Loader.getLogManager().getParent());
        logger.setLevel(Level.ALL);
    }

    public String getId() {
        return id;
    }

    public void highlight(String msg) {
        log(Level.INFO, ConsoleColor.GOLD + "" + ConsoleColor.NEGATIVE + msg);
    }

    public void info(String s) {
        log(Level.INFO, ConsoleColor.WHITE + s);
    }

    public void warning(String s) {
        log(Level.WARNING, ConsoleColor.GOLD + s);
    }

    public void warning(String s, Object... aobject) {
        logger.log(Level.WARNING, ConsoleColor.GOLD + s, aobject);
    }

    public void warning(String s, Throwable throwable) {
        log(Level.WARNING, ConsoleColor.GOLD + s, throwable);
    }

    public void severe(String s) {
        log(Level.SEVERE, ConsoleColor.RED + s);
    }

    public void severe(Throwable t) {
        log(Level.SEVERE, ConsoleColor.RED + t.getMessage(), t);
    }

    public void severe(String s, Throwable t) {
        log(Level.SEVERE, ConsoleColor.RED + s, t);
    }

    public void panic(Throwable e) {
        severe(e);
        Loader.stop("The server is stopping due to a severe error!");
    }

    public void panic(String var1) {
        severe(var1);
        Loader.stop(var1);
    }

    public void fine(String var1) {
        logger.log(Level.FINE, var1);
    }

    public void finer(String var1) {
        logger.log(Level.FINER, var1);
    }

    public void finest(String var1) {
        logger.log(Level.FINEST, var1);
    }

    private void printHeader() {
        if (lineCount > 40) {
            lineCount = 0;
            log(Level.FINE, ConsoleColor.GOLD + "<CLIENT ID>     <MESSAGE>");
        }

        lineCount++;
    }

    public void log(Level l, String client, String msg) {
        if (client.length() < 15) {
            client = client + Strings.repeat(" ", 15 - client.length());
        }

        printHeader();

        log(l, ConsoleColor.LIGHT_PURPLE + client + " " + ConsoleColor.AQUA + msg);
    }

    public void log(Level l, String msg, Throwable t) {
        logger.log(l, msg, t);
    }

    public void log(Level l, String msg) {
        logger.log(l, msg);
    }

    public String[] multilineColorRepeater(String var1) {
        return multilineColorRepeater(var1.split("\\n"));
    }

    public String[] multilineColorRepeater(String[] var1) {
        String color = ConsoleColor.getLastColors(var1[0]);

        for (int l = 0; l < var1.length; l++) {
            var1[l] = color + var1[l];
        }

        return var1;
    }

    public void debug(String... var1) {
        for (String var2 : var1)
            info(ConsoleColor.NEGATIVE + "" + ConsoleColor.YELLOW + " >>>>   " + var2 + "   <<<< ");
    }

    protected Logger getLogger() {
        return logger;
    }
}