All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.ucanaccess.log.Logger Maven / Gradle / Ivy

package net.ucanaccess.log;

import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Optional;
import java.util.ResourceBundle;
import java.util.logging.Level;

public final class Logger {

    private static PrintWriter    logPrintWriter;
    /** The resource bundle with logger messages. */
    private static ResourceBundle messageBundle = ResourceBundle.getBundle(ILoggerResourceMessage.BUNDLE_NAME);

    private Logger() {
    }

    public static void dump() {
        Arrays.stream(Thread.currentThread().getStackTrace()).forEach(Logger::log);
    }

    public static void turnOffJackcessLog() {
        java.util.logging.Logger.getLogger("com.healthmarketscience.jackcess")
            .setLevel(Level.OFF);
    }

    public static PrintWriter getLogPrintWriter() {
        return logPrintWriter;
    }

    public static String getMessage(String _code, Object... _params) {
        String msg = Optional.ofNullable(_code).map(messageBundle::getString).orElse(_code);
        if (_code != null && _params != null && _params.length > 0) {
            msg = String.format(msg, _params);
        }
        return msg;
    }

    public static String getMessage(ILoggerResourceMessage _code, Object... _params) {
        return _code == null ? null : getMessage(_code.name(), _params);
    }

    /**
     * Prints the object followed by a line separator.
     * @param _obj the object to print
     */
    public static void log(Object _obj) {
        Optional.ofNullable(logPrintWriter).ifPresent(l -> {
            l.println(_obj);
            l.flush();
        });
    }

    public static void logWarning(String _warning) {
        System.err.println("WARNING: " + _warning);
    }

    public static void logWarning(ILoggerResourceMessage _code, String... _par) {
        logWarning(getMessage(_code, (Object[]) _par));
    }

    public static void setLogPrintWriter(PrintWriter _logPrintWriter) {
        logPrintWriter = _logPrintWriter;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy