
com.sshtools.jaul.Logging Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jaul Show documentation
Show all versions of jaul Show documentation
A library used across several JAdpative applications, it provides some common features based on Install4J Runtime.
The newest version!
package com.sshtools.jaul;
import java.text.MessageFormat;
import java.util.Optional;
public class Logging {
public interface Logger {
void info(String msg);
void debug(String msg);
void warning(String msg);
void error(String msg);
boolean isDebug();
}
private final static class Defaults {
private final static Logger DEFAULT = new Logger() {
@Override
public void info(String msg) {
}
@Override
public void debug(String msg) {
}
@Override
public void warning(String msg) {
System.err.println("[WARNING] " + msg);
}
@Override
public void error(String msg) {
System.err.println("[ERROR] " + msg);
}
@Override
public boolean isDebug() {
return false;
}
};
}
private static Optional logger = Optional.empty();
public static void setLogger(Logger logger) {
Logging.logger = Optional.of(logger);
}
private static Logger log() {
return Logging.logger.orElseGet(() -> Defaults.DEFAULT);
}
public static void info(String pattern, Object... args) {
log().info(args.length == 0 ? pattern : MessageFormat.format(pattern, args));
}
public static void debug(String pattern, Object... args) {
log().debug(args.length == 0 ? pattern : MessageFormat.format(pattern, args));
}
public static void warn(String pattern, Object... args) {
log().warning(args.length == 0 ? pattern : MessageFormat.format(pattern, args));
}
public static void error(String pattern, Object... args) {
log().error(args.length == 0 ? pattern : MessageFormat.format(pattern, args));
}
public static boolean isDebugEnabled() {
return log().isDebug();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy