Changed log folders to apply yyyy-MM-dd mask. Created some scripts to fix race conditions involving delayed arrivals to travel events in-game.
184 lines
6.3 KiB
Java
184 lines
6.3 KiB
Java
package tools;
|
|
|
|
import java.io.File;
|
|
import java.io.FileOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.PrintWriter;
|
|
import java.io.StringWriter;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Calendar;
|
|
|
|
public class FilePrinter {
|
|
|
|
public static final String
|
|
ACCOUNT_STUCK = "accountStuck.txt",
|
|
EXCEPTION_CAUGHT = "exceptionCaught.txt",
|
|
CLIENT_START = "clientStartError.txt",
|
|
ADD_PLAYER = "addPlayer.txt",
|
|
MAPLE_MAP = "mapleMap.txt",
|
|
ERROR38 = "error38.txt",
|
|
PACKET_LOG = "log.txt",
|
|
EXCEPTION = "exceptions.txt",
|
|
PACKET_HANDLER = "PacketHandler/",
|
|
PORTAL = "portals/",
|
|
NPC = "npcs/",
|
|
INVOCABLE = "invocable/",
|
|
REACTOR = "reactors/",
|
|
QUEST = "quests/",
|
|
ITEM = "items/",
|
|
MOB_MOVEMENT = "mobmovement.txt",
|
|
MAP_SCRIPT = "mapscript/",
|
|
DIRECTION = "directions/",
|
|
SAVE_CHAR = "saveToDB.txt",
|
|
INSERT_CHAR = "insertCharacter.txt",
|
|
LOAD_CHAR = "loadCharFromDB.txt",
|
|
UNHANDLED_EVENT = "doesNotExist.txt",
|
|
SESSION = "sessions.txt",
|
|
EXPLOITS = "exploits/",
|
|
STORAGE = "storage/",
|
|
PACKET_LOGS = "packetlogs/",
|
|
DELETED_CHARACTERS = "deletedchars/",
|
|
FREDRICK = "fredrick/",
|
|
NPC_UNCODED = "uncodedNPCs.txt",
|
|
QUEST_UNCODED = "uncodedQuests.txt",
|
|
SAVING_CHARACTER = "saveChar.txt";//more to come (maps)
|
|
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //for file system purposes, it's nice to use yyyy-MM-dd
|
|
private static final String FILE_PATH = "logs/" + sdf.format(Calendar.getInstance().getTime()) + "/";// + sdf.format(Calendar.getInstance().getTime()) + "/"
|
|
private static final String ERROR = "error/";
|
|
|
|
public static void printError(final String name, final Throwable t) {
|
|
System.out.println("Error thrown: " + name);
|
|
System.out.println(getString(t));
|
|
FileOutputStream out = null;
|
|
final String file = FILE_PATH + ERROR + name;
|
|
try {
|
|
File outputFile = new File(file);
|
|
if (outputFile.getParentFile() != null) {
|
|
outputFile.getParentFile().mkdirs();
|
|
}
|
|
out = new FileOutputStream(file, true);
|
|
out.write(getString(t).getBytes());
|
|
out.write("\n---------------------------------\r\n".getBytes());
|
|
} catch (IOException ess) {
|
|
ess.printStackTrace();
|
|
} finally {
|
|
try {
|
|
if (out != null) {
|
|
out.close();
|
|
}
|
|
} catch (IOException ignore) {
|
|
ignore.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void printError(final String name, final Throwable t, final String info) {
|
|
System.out.println("Error thrown: " + name);
|
|
System.out.println(getString(t));
|
|
FileOutputStream out = null;
|
|
final String file = FILE_PATH + ERROR + name;
|
|
try {
|
|
File outputFile = new File(file);
|
|
if (outputFile.getParentFile() != null) {
|
|
outputFile.getParentFile().mkdirs();
|
|
}
|
|
out = new FileOutputStream(file, true);
|
|
out.write((info + "\r\n").getBytes());
|
|
out.write(getString(t).getBytes());
|
|
out.write("\n---------------------------------\r\n".getBytes());
|
|
} catch (IOException ess) {
|
|
ess.printStackTrace();
|
|
} finally {
|
|
try {
|
|
if (out != null) {
|
|
out.close();
|
|
}
|
|
} catch (IOException ignore) {
|
|
ignore.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void printError(final String name, final String s) {
|
|
System.out.println("Error thrown: " + name);
|
|
System.out.println(s);
|
|
FileOutputStream out = null;
|
|
final String file = FILE_PATH + ERROR + name;
|
|
try {
|
|
File outputFile = new File(file);
|
|
if (outputFile.getParentFile() != null) {
|
|
outputFile.getParentFile().mkdirs();
|
|
}
|
|
out = new FileOutputStream(file, true);
|
|
out.write(s.getBytes());
|
|
//out.write("\n---------------------------------\n".getBytes());
|
|
} catch (IOException ess) {
|
|
ess.printStackTrace();
|
|
} finally {
|
|
try {
|
|
if (out != null) {
|
|
out.close();
|
|
}
|
|
} catch (IOException ignore) {
|
|
ignore.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void print(final String name, final String s) {
|
|
print(name, s, true);
|
|
}
|
|
|
|
public static void print(final String name, final String s, boolean line) {
|
|
System.out.println("Error thrown: " + name);
|
|
System.out.println(s);
|
|
FileOutputStream out = null;
|
|
String file = FILE_PATH + name;
|
|
try {
|
|
File outputFile = new File(file);
|
|
if (outputFile.getParentFile() != null) {
|
|
outputFile.getParentFile().mkdirs();
|
|
}
|
|
out = new FileOutputStream(file, true);
|
|
out.write(s.getBytes());
|
|
out.write("\r\n".getBytes());
|
|
if (line) {
|
|
out.write("---------------------------------\r\n".getBytes());
|
|
}
|
|
} catch (IOException ess) {
|
|
ess.printStackTrace();
|
|
} finally {
|
|
try {
|
|
if (out != null) {
|
|
out.close();
|
|
}
|
|
} catch (IOException ignore) {
|
|
ignore.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
private static String getString(final Throwable e) {
|
|
String retValue = null;
|
|
StringWriter sw = null;
|
|
PrintWriter pw = null;
|
|
try {
|
|
sw = new StringWriter();
|
|
pw = new PrintWriter(sw);
|
|
e.printStackTrace(pw);
|
|
retValue = sw.toString();
|
|
} finally {
|
|
try {
|
|
if (pw != null) {
|
|
pw.close();
|
|
}
|
|
if (sw != null) {
|
|
sw.close();
|
|
}
|
|
} catch (IOException ignore) {
|
|
ignore.printStackTrace();
|
|
}
|
|
}
|
|
return retValue;
|
|
}
|
|
} |