public class Main {
public static void main(String[] args) {
Logger logger = Logger.getLogger(Main.class.getName());
logger.info("Start process...");
try { "".getBytes("invalidCharsetName"); } catch (UnsupportedEncodingException e) { // TODO: 使用logger.severe()打印异常 logger.severe((Supplier<String>) e); }
logger.info("Process end."); } }
直接tostring了 不知道当时从哪搞出来 Supplier<String>) 这么个鬼玩意
logger.severe((Supplier<String>) e);
是重载方法 传入的是一个 函数式接口
可以进行其他操作
可以这样写
logger.info(()->{e.printStackTrace(); return null;});
应该是弥补了,e.tostring 的一些缺陷,比如无法看到具体stack信息
看评论,好像没人注意到这个重载方法,我之前也不理解,果然,每次看都不一样
主要是最近刚学lambda表达式
Sign in to make a reply
求女票上微博
public class Main {
public static void main(String[] args) {
Logger logger = Logger.getLogger(Main.class.getName());
logger.info("Start process...");
try {
"".getBytes("invalidCharsetName");
} catch (UnsupportedEncodingException e) {
// TODO: 使用logger.severe()打印异常
logger.severe((Supplier<String>) e);
}
logger.info("Process end.");
}
}