Для того чтобы ошибка записывалась только один раз, можно использовать механизм фильтрации ошибок. Например, можно использовать переменную для хранения идентификатора последней записанной ошибки и проверять при логировании, совпадает ли новая ошибка с этим идентификатором. Если совпадает, то ошибку не записываем в лог. Если не совпадает, то записываем в лог и обновляем значение идентификатора.
Чтобы исключить определенные классы из логирования ошибок, можно добавить в обработчик ошибок `ServiceErrorHandler` дополнительное условие на проверку класса ошибки перед ее логированием. Например, можно использовать метод `instanceof` для проверки класса ошибки и исключения определенных классов из логирования. Например:
```java
if (error instanceof ExcludedErrorClass) {
// не логируем ошибку
} else {
// логируем ошибку
}
```
Таким образом, можно исключить определенные классы ошибок из логирования, обрабатывая их вручную в обработчике ошибок.