19 package org.sleuthkit.autopsy.casemodule;
21 import java.util.logging.Level;
22 import org.openide.util.NbBundle;
34 class SleuthkitErrorReporter
implements SleuthkitCase.ErrorObserver {
36 private static final Logger LOGGER = Logger.getLogger(SleuthkitErrorReporter.class.getName());
37 private final int milliSecondsBetweenReports;
38 private final String message;
39 private long newProblems;
40 private long totalProblems;
41 private long lastReportedDate;
52 SleuthkitErrorReporter(
int secondsBetweenReports, String message) {
54 this.totalProblems = 0;
55 this.lastReportedDate = 0;
56 this.milliSecondsBetweenReports = secondsBetweenReports * 1000;
57 this.message = message;
69 public void receiveError(String context, String errorMessage) {
70 LOGGER.log(Level.SEVERE, String.format(
"%s error in the SleuthKit layer: %s", context, errorMessage));
71 this.newProblems += 1;
72 this.totalProblems += newProblems;
73 long currentTimeStamp = System.currentTimeMillis();
74 if ((currentTimeStamp - lastReportedDate) > milliSecondsBetweenReports) {
75 this.lastReportedDate = currentTimeStamp;
76 MessageNotifyUtil.Notify.error(message, context +
", " + errorMessage +
" "
77 + this.newProblems +
" "
78 + NbBundle.getMessage(SleuthkitErrorReporter.class,
"IntervalErrorReport.NewIssues")
79 +
" " + this.totalProblems +
" "
80 + NbBundle.getMessage(SleuthkitErrorReporter.class,
"IntervalErrorReport.TotalIssues")