使用Logger将stacktrace写入文件会产生空文件

时间:2019-09-15 00:38:18

标签: java logging javafx

我需要将“异常”堆栈跟踪记录到日志文件中,但是当发生异常时,日志文件为空。终端上的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没有编写!哪里有问题?

0 个答案:

没有答案