我有一种情况,我想使用记录器打印捕获在catch块中的所有异常.
try { File file = new File("C:\\className").mkdir(); fh = new FileHandler("C:\\className\\className.log"); logger.addHandler(fh); logger.setUseParentHandlers(false); SimpleFormatter formatter = new SimpleFormatter(); fh.setFormatter(formatter); } catch (Exception e) { logger.info(e); }
我得到错误记录器不能应用于java.io.Exception …
我关心的是如果我在try block中做这么多事情,我只保留一个catch块作为catch(Exception e),那么有没有什么办法使用logger来打印捕获catch块中的任何类型的异常?
注意:我们使用java.util.logging.Logger API
请指导我…谢谢先生
解决方法
你应该明白你正在使用哪个记录器.
org.apache.commons.logging.Log接口具有方法void error(Object message,Throwable t)(和方法void info(Object message,Throwable t)),它将堆栈跟踪与自定义消息一起记录. Log4J实现也有这个方法.
所以,大概你需要写:
logger.error("BOOM!",e);
如果您需要使用INFO级别进行登录(但是,这可能是一个奇怪的用例),那么:
logger.info("Just a stack trace,nothing to worry about",e);
希望它有帮助.