mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-08 12:51:51 +09:00
Former-commit-id: 1647fa32ef6894bd7db44f741f07c2f4dcdf9054 Former-commit-id: 0e5810dcfbe1fd59b13e7cabe9f1e93c5542da2d
162 lines
3.8 KiB
Java
162 lines
3.8 KiB
Java
package org.newdawn.slick.util;
|
|
|
|
import java.security.AccessController;
|
|
import java.security.PrivilegedAction;
|
|
|
|
/**
|
|
* A simple central logging system
|
|
*
|
|
* @author kevin
|
|
*/
|
|
public final class Log {
|
|
/** True if we're doing verbose logging INFO and DEBUG */
|
|
private static boolean verbose = true;
|
|
/** true if activated by the system property "org.newdawn.slick.forceVerboseLog" */
|
|
private static boolean forcedVerbose = false;
|
|
|
|
/**
|
|
* The debug property which can be set via JNLP or startup parameter to switch
|
|
* logging mode to verbose for games that were released without verbose logging
|
|
* value must be "true"
|
|
*/
|
|
private static final String forceVerboseProperty = "org.newdawn.slick.forceVerboseLog";
|
|
|
|
/**
|
|
* the verbose property must be set to "true" to switch on verbose logging
|
|
*/
|
|
private static final String forceVerbosePropertyOnValue = "true";
|
|
|
|
/** The log system plugin in use */
|
|
private static LogSystem logSystem = new DefaultLogSystem();
|
|
|
|
/**
|
|
* The log is a simple static utility, no construction
|
|
*/
|
|
private Log() {
|
|
|
|
}
|
|
|
|
/**
|
|
* Set the log system that will have all of the log info
|
|
* sent to it.
|
|
*
|
|
* @param system The system to use for logging.
|
|
*/
|
|
public static void setLogSystem(LogSystem system) {
|
|
logSystem = system;
|
|
}
|
|
|
|
/**
|
|
* Indicate that we want verbose logging.
|
|
* The call is ignored if verbose logging is forced by the system property
|
|
* "org.newdawn.slick.forceVerboseLog"
|
|
*
|
|
* @param v True if we want verbose logging (INFO and DEBUG)
|
|
*/
|
|
public static void setVerbose(boolean v) {
|
|
if (forcedVerbose)
|
|
return;
|
|
verbose = v;
|
|
}
|
|
|
|
/**
|
|
* Check if the system property org.newdawn.slick.verboseLog is set to true.
|
|
* If this is the case we activate the verbose logging mode
|
|
*/
|
|
public static void checkVerboseLogSetting() {
|
|
try {
|
|
AccessController.doPrivileged(new PrivilegedAction() {
|
|
public Object run() {
|
|
String val = System.getProperty(Log.forceVerboseProperty);
|
|
if ((val != null) && (val.equalsIgnoreCase(Log.forceVerbosePropertyOnValue))) {
|
|
Log.setForcedVerboseOn();
|
|
}
|
|
|
|
return null;
|
|
}
|
|
});
|
|
} catch (Throwable e) {
|
|
// ignore, security failure - probably an applet
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Indicate that we want verbose logging, even if switched off in game code.
|
|
* Only be called when system property "org.newdawn.slick.forceVerboseLog" is set to true.
|
|
* You must not call this method directly.
|
|
*/
|
|
public static void setForcedVerboseOn() {
|
|
forcedVerbose = true;
|
|
verbose = true;
|
|
}
|
|
|
|
/**
|
|
* Log an error
|
|
*
|
|
* @param message The message describing the error
|
|
* @param e The exception causing the error
|
|
*/
|
|
public static void error(String message, Throwable e) {
|
|
logSystem.error(message, e);
|
|
}
|
|
|
|
/**
|
|
* Log an error
|
|
*
|
|
* @param e The exception causing the error
|
|
*/
|
|
public static void error(Throwable e) {
|
|
logSystem.error(e);
|
|
}
|
|
|
|
/**
|
|
* Log an error
|
|
*
|
|
* @param message The message describing the error
|
|
*/
|
|
public static void error(String message) {
|
|
logSystem.error(message);
|
|
}
|
|
|
|
/**
|
|
* Log a warning
|
|
*
|
|
* @param message The message describing the warning
|
|
*/
|
|
public static void warn(String message) {
|
|
logSystem.warn(message);
|
|
}
|
|
|
|
/**
|
|
* Log a warning
|
|
*
|
|
* @param message The message describing the warning
|
|
* @param e The issue causing the warning
|
|
*/
|
|
public static void warn(String message, Throwable e) {
|
|
logSystem.warn(message, e);
|
|
}
|
|
|
|
/**
|
|
* Log an information message
|
|
*
|
|
* @param message The message describing the infomation
|
|
*/
|
|
public static void info(String message) {
|
|
if (verbose || forcedVerbose) {
|
|
logSystem.info(message);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Log a debug message
|
|
*
|
|
* @param message The message describing the debug
|
|
*/
|
|
public static void debug(String message) {
|
|
if (verbose || forcedVerbose) {
|
|
logSystem.debug(message);
|
|
}
|
|
}
|
|
}
|