Take a step back and see if you have a log searching problem or an error reporting problem.
Does a single error result in multiple log entries or a single one? Do you have thousands of lines of info and debug messages for each error? Why are your logs so hard to search?
Without seeing your code; is it littered with the following?
} catch (Exception e) {
//error suppressed
log.error("error" + e.getMessage());
}
...
} catch (Exception e) {
//error logged and passed along
log.error("error" + e.getMessage());
throw e;
}
...
} catch (Exception e) {
//error logged and new one passed along
log.error("error" + e.getMessage());
throw new Exception("error" + e.getMessage());
}
The end result is that a single error can lead to multiple error log entries as the problem is logged and bounced rather than handled. I call this bureaucratic logging since all errors are filed in triplicate, passed around, and no one takes actual responsibility in handling the problem.
I would consider separating errors from info and debug messages and work to make reported bugs easier to find.