logging - 如何使用 TinyLog 记录运行时异常
问题描述
在对 tinylog 进行实验时,我面临的问题是无法打印运行时异常日志。
例如。int a =0 ;int b = 10;int c = b/a;
因为这会给出算术异常,但这不会在日志中获取记录器。
解决方案
您只需要捕获运行时异常并将其传递给记录器:
import org.tinylog.Logger;
public class Application {
public static void main(String[] args) {
try {
int a = 0, b = 10;
System.out.println(b / a);
} catch (RuntimeException ex) {
Logger.error(ex);
}
}
}
编辑:或者,您也可以使用UncaughtExceptionHandler记录未捕获的异常:
import java.lang.Thread.UncaughtHandler;
import org.tinylog.Logger;
public class Application {
public static void main(String[] args) {
Thread.setDefaultUncaughtExceptionHandler(new TinylogHandler());
int a = 0, b = 0;
System.out.println(a / b);
}
private static class TinylogHandler implements UncaughtExceptionHandler {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
Logger.error(ex);
}
}
}
推荐阅读
- javascript - 如何更改数组中除一个值之外的所有值?
- java - 如何在 java 中读取 SQLite 查询结果
- variables - 将变量设置为 bsh 脚本中命令的输出
- php - PHP 返回 %u05D0
- vba - Excel VBA过滤器复制并粘贴在单独工作表上最后使用的行下
- ios - Ionic 应用程序在 iOS 设备的第一个屏幕上冻结
- r - tidyverse:所有列组合的卡方
- php - 为什么 "if($_SESSION['count'] >= 3" 给我错误?
- python - 仅将数据框中的新值附加到熊猫中的另一个数据框
- swift - 当应用程序处于后台或终止状态时,如何找到用户位置?