Même si vous créez vous-même ʻException avec un framework tel que
SpringBoot` et lancez une erreur comme un comportement connu, la trace de la pile sera affichée dans le journal telle quelle.
En d'autres termes, il est clair que la cause de l'erreur se trouve dans l'application, mais elle affiche simplement des informations inutiles.
Si la trace de la pile est longue, elle interférera avec la lecture et la capacité du journal augmentera trop, ce qui peut causer des problèmes, il est donc préférable de ne pas avoir d'informations supplémentaires.
Par conséquent, filtrez la trace de la pile.
Vous pouvez le faire en préparant une fonction de filtrage comme indiqué ci-dessous et setStackTrace
dans le constructeur.
Le nom du package est une chaîne telle que com.wrongwrong.example
qui spécifie le package racine.
public class MyException extends RuntimeException {
static StackTraceElement[] filteringStackTrace(StackTraceElement[] elements) {
return Arrays.stream(elements)
.filter(it -> it.getClassName().startsWith("${nom du paquet}"))
.toArray(StackTraceElement[]::new);
}
public MyException(String msg) {
super(msg);
setStackTrace(filteringStackTrace(getStackTrace()));
}
}
Recommended Posts