【发布时间】:2015-11-15 14:38:57
【问题描述】:
我一直在编写一小段代码,尽管其余代码都可以运行,但我编写的日志记录系统存在错误。
当调用方法 log(String) 时,它会抛出 NullPointerException。 我认为这可能是因为可能没有创建文件,但我不确定我做错了什么,据我所知应该创建文件(不是),即使我创建了文件放到正确的位置,还是会抛出异常。
我一直在修改它,所以其中一些没有意义,可能是因为它是在我调试的时候。
代码如下:
package UI;
import java.io.File;
import java.io.PrintWriter;
public class InputLogger {
//Necessary for interceptor pattern
private static PrintWriter output;
//For testing remove later
private static File logFile;
public InputLogger() {
initiate("log.txt");
}
public InputLogger(String anotherFile) {
initiate(anotherFile);
}
public void initiate(String filename) {
try {
/*File */logFile = new File(filename);
if(!logFile.exists()) {
if(!logFile.createNewFile())
System.err.println("Error creating log file. Please verify that files can be created.");
}
output = new PrintWriter(logFile);
} catch (Exception e) {
System.err.println("Error accessing log file. Please verify that files can be created.");
}
}
public static void log(String action) {
try {
output.println(action);
} catch (Exception e) {
e.printStackTrace(System.out);
System.err.println("Error printing to log file. Please verify that file exists or can be created.");
}
}
public void close() {
output.close();
}
}
我认为这可能与我将其称为静态方法这一事实有关,但我一直在环顾四周,似乎无法在其他地方找到解释。
编辑:
我忘了实际创建一个 InputLogger 对象。谢谢大家。
【问题讨论】:
-
您是如何创建 Logger 和通话记录的?