PRC8/nwn/nwnprc/DocGen/trunk/prc/autodoc/ErrorPrinter.java
Jaysyn904 5914ed2ab5 Updated Release Archive
Updated Release Archive.  Fixed Mage-killer prereqs.  Removed old LETO & ConvoCC related files.  Added organized spell scroll store.  Fixed Gloura spellbook. Various TLK fixes.  Reorganized Repo.  Removed invalid user folders. Added DocGen back in.
2023-08-22 10:00:21 -04:00

66 lines
1.7 KiB
Java

package prc.autodoc;
import java.io.FileOutputStream;
import java.io.PrintWriter;
/**
* A convenience class for printing errors to both log and System.err
*/
public class ErrorPrinter {
private PrintWriter writer;
private boolean isInit = false;
/**
* Initializes the ErrorPrinter.
* Attempts to open a log file by name of "errorlog" for writing. If this
* fails, aborts the program.
*/
private void init() {
try {
writer = new PrintWriter(new FileOutputStream("errorlog", false), true);
isInit = true;
} catch (Exception e) {
System.err.println("Error while creating error logger. Yes, it's ironic. Now debug");
e.printStackTrace();
System.exit(1);
}
}
/**
* Prints the given string to both stderr and errorlog.
*
* @param toPrint string to write
*/
public void print(String toPrint) {
if (!isInit)
init();
writer.print(toPrint);
System.err.print(toPrint);
}
/**
* Prints the given string to both stderr and errorlog. In addition, adds
* a line terminator to the end of the string.
*
* @param toPrint string to write
*/
public void println(String toPrint) {
if (!isInit)
init();
writer.println(toPrint);
System.err.println(toPrint);
}
/**
* Prints the given exception's stack trace to both stderr and errorlog.
*
* @param e exception to print
*/
public void printException(Exception e) {
if (!isInit)
init();
e.printStackTrace(System.out);
e.printStackTrace(writer);
}
}