Java控制台记录器异常处理
问题描述:
我试图阻止我的Java应用程序控制台中的每个异常消息,现在我只是不知道该怎么做。Java控制台记录器异常处理
我试图使用java.util.logging.Logger,并且我向他添加了Handler,它工作良好,但Handler没有像“cancelPublish”这样的函数。
在Java中有没有任何类与发送日志之前执行的方法,并具有作为参数异常对象,并在其中我可以停止“打印”日志控制台,或将他替换为我的字符串?
我想发送我所有的异常(像这样低)到云和异常日志替换像“错误ID:XX”的东西。
接下来,我需要得到异常对象,并发送至数据库:异常名称,是否存在异常信息和错误时抛出的痕迹。
getLogger().addHandler(new SH());
private class SH extends StreamHandler {
@Override
public synchronized void publish(LogRecord record) {
if (record.getLevel().intValue() > Level.INFO.intValue()) {
// I can there send that log to database
}
}
}
我想这样的事情上,但不是每个日志与级别WARN,或者错误是例外,在那里像?:
getLogger().addExceptionListener(new ExceptionListener() {
public void onCheck(ExceptionEvent e) {
//First method which I want
e.getException();
//and second
e.cancelPublish();
}
});
Java方法有什么接近,在Java中?
答
我relsolved它通过添加过滤器,以我的记录器:
getLogger().setFilter(new Filter() {
@Override
public boolean isLoggable(LogRecord record) {
//There I do what I want...
return record.getThrown() != null;
}
});
你需要证明你有什么到目前为止已经试过。请参阅[如何提出一个好问题](/ help/how-to-ask)和[mcve] – Tibrogargan
如果有帮助,我添加了图片。 – TheTonsOfCode
你有任何代码可以告诉我们吗?此外,您可能希望查看观察者或用户模式,并在记录器周围添加图层,并使用您用于分析和取消或记录的代码。 – Underbalanced