我需要将“异常”堆栈跟踪记录到日志文件中,但是当发生异常时,日志文件为空。终端上的Stacktrace消息正确,但是日志文件为空。
我尝试了经典的日志记录API。
public class LoginController {
public static Handler handler;
{
try {
handler = new FileHandler("log"+File.separator+"error.log");
Logger.getLogger(LoginController.class.getName()).addHandler(handler);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void log(Level level, String name, Exception ex) {
Logger logger = Logger.getLogger(name);
logger.log(level, ex.fillInStackTrace().toString());
}
//some code ...
catch (IOException e) {
log(Level.WARNING, LoginController.class.getName(), e);
handler.close();
}
}
在error.log文件中:
<?xml version="1.0" encoding="windows-1252" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
</log>
Stacktrace没有编写!哪里有问题?