在对 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);
}
}
}