我正在开发一个spring-boot
应用程序,作为要求的一部分,我需要收集整个应用程序中的所有Exception
消息,并将这些详细信息作为电子邮件发送。
在spring
中是否有实现此目标的方法?我打算写一个服务来保存所有异常消息的集合。这是正确的方法吗?
作为开发的一部分,我编写了以下代码以实现目标。
public class Error {
private String message;
public Error(String message) {
this.message = message;
}
//getters //setters
}
public interface ErrorService {
void addError(final Error error);
List<Error> getAll();
}
@Service
public class ExceptionMessageServiceImpl implements ExceptionService {
private List<Error> errors = new ArrayList<Error>();
public void addError(final Error error) {
errors.addError(error);
}
public List<Error> getAll() {
return errors;
}
}
public class ReportUtil {
@Autowired
ErrorService errorService;
public void generateReport() {
try {
// report logic process goes here
}catch(Exception1 e) {
errorService.addError(new Error(e.getMessage+"some custom error message");
}catch(Exception2 e) {
errorService.addError(new Error(e.getMessage+"some custom error message");
}
// more logic to fallow
try {
// more batch logic process goes here
}catch(Exception1 e) {
errorService.addError(new Error(e.getMessage+"some custom error message");
}catch(Exception2 e) {
errorService.addError(new Error(e.getMessage+"some custom error message");
}
//......
//.......
}
}
public class BatchUtil {
@Autowired
ErrorService errorService;
public void processBatch() {
try {
// batch logic process goes here
}catch(Exception1 e) {
errorService.addError(new Error(e.getMessage+"some custom error message");
}catch(Exception2 e) {
errorService.addError(new Error(e.getMessage+"some custom error message");
}
// more logic to fallow
try {
// more batch logic process goes here
}catch(Exception1 e) {
errorService.addError(new Error(e.getMessage+"some custom error message");
}catch(Exception2 e) {
errorService.addError(new Error(e.getMessage+"some custom error message");
}
//......
//.......
}
}
从上面的代码可以看出,List<Error>
需要被捕获并通过电子邮件发送。
请告知。