94 lines
3.0 KiB
Java
94 lines
3.0 KiB
Java
package com.alttd.util;
|
|
|
|
import com.alttd.AltitudeBot;
|
|
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import java.sql.SQLException;
|
|
import java.text.DateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Date;
|
|
import java.util.logging.FileHandler;
|
|
import java.util.logging.Level;
|
|
|
|
public class Logger { //TODO make this log to a file
|
|
|
|
private static final java.util.logging.Logger info;
|
|
private static final java.util.logging.Logger error;
|
|
private static final java.util.logging.Logger sql;
|
|
|
|
static {
|
|
File logDir = new File(new File(AltitudeBot.getInstance().getDataFolder()).getParent() + File.separator + "logs");
|
|
if (!logDir.exists())
|
|
{
|
|
if (!logDir.mkdir()) {
|
|
System.out.println("UNABLE TO CREATE LOGGING DIRECTORY");
|
|
System.exit(1);
|
|
}
|
|
}
|
|
|
|
info = java.util.logging.Logger.getLogger("info");
|
|
error = java.util.logging.Logger.getLogger("error");
|
|
sql = java.util.logging.Logger.getLogger("sql");
|
|
info.setLevel(Level.ALL);
|
|
error.setLevel(Level.ALL);
|
|
sql.setLevel(Level.ALL);
|
|
|
|
DateFormat dateFormat = new SimpleDateFormat("yyyy-MMM-dd");
|
|
Date date = new Date();
|
|
String formattedTime = dateFormat.format(date.getTime());
|
|
|
|
try {
|
|
info.addHandler(new FileHandler(logDir.getAbsolutePath() + File.separator +
|
|
formattedTime + "info.log"));
|
|
error.addHandler(new FileHandler(logDir.getAbsolutePath() + File.separator +
|
|
formattedTime + "error.log"));
|
|
sql.addHandler(new FileHandler(logDir.getAbsolutePath() + File.separator +
|
|
formattedTime + "sql.log"));
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
System.exit(1);
|
|
}
|
|
}
|
|
|
|
public static void info(String message, String... replacements) {
|
|
message = replace(message, replacements);
|
|
info.info(message);
|
|
}
|
|
|
|
public static void warning(String message, String... replacements) {
|
|
message = replace(message, replacements);
|
|
error.warning(message);
|
|
}
|
|
|
|
public static void severe(String message, String... replacements) {
|
|
message = replace(message, replacements);
|
|
error.severe(message);
|
|
}
|
|
|
|
public static void sql(String message) {
|
|
sql.info(message);
|
|
}
|
|
|
|
public static void sql(SQLException exception) {
|
|
exception.printStackTrace();
|
|
sql.info("SQLState: " + exception.getSQLState() + "\n");
|
|
sql.severe("Error:\n" + exception.getMessage());
|
|
}
|
|
|
|
public static void exception(Exception exception) {
|
|
exception.printStackTrace();
|
|
error.severe("Error:\n" + exception.getMessage());
|
|
}
|
|
|
|
private static String replace(String message, String... replacements) {
|
|
if (replacements == null)
|
|
return message;
|
|
for (String replacement : replacements) {
|
|
message = message.replaceFirst("%", replacement);
|
|
}
|
|
return message;
|
|
}
|
|
|
|
}
|