Итак, что вам нужно сделать, это
ExceptionPersistingService eps = new ExceptionPersistingService();
try{
//some code that might trow exception
}catch(Exception e){
eps.saveNewExceptin(getStackTrace(e));
}
public static String getStackTrace(Throwable aThrowable) {
//add the class name and any message passed to constructor
final StringBuilder result = new StringBuilder("Trace: ");
result.append(aThrowable.toString());
final String NEW_LINE = "<br>";
result.append(NEW_LINE);
//add each element of the stack trace
for (StackTraceElement element : aThrowable.getStackTrace()) {
result.append(element);
result.append(NEW_LINE);
}
return result.toString();
}
Чем вы создадите реализацию lucene (я рекомендую использовать hibernate-поиск), которая будет индексировать строки исключений, которые вы сохранили в базе данных. В вашем методе save () вы можете создать объект PersistentException, который имеет ID
, Date
, ExceptionString
, User
и даже, возможно, URL
сведения, при которых произошло исключение.
Все, что вам нужно сделать, - это проанализировать ваши запросы, создать Fuzzy или любой другой запрос и наслаждаться результатами поиска. Для более подробной информации вам нужно изучить такие книги, как Hibernate Search in Action
и Lucene in Action
. У них есть довольно хорошие примеры того, как делать то, что я только что кратко упомянул.