0: без регистрации
1: регистрация исключений: регистрировать каждую выданную ошибку. Например, в c #: вход в блоки catch. Когда эти операции журнала запускаются, вы знаете, что у вас есть ошибка. Вы также можете войти в операторы switch, если есть случай, который никогда не должен ударить, и тому подобное.
2: регистрация операций: для операций регистрации, которые не находятся в блоках перехвата (обычные операции), должна быть установлена высокая отладка. Таким образом, вы можете увидеть, какой метод начинает выполняться, а затем оказывается в блоке catch.
Кроме того, подумайте о переключателях регистрации, например, регистрации пакетов (true: протоколировать сетевые пакеты / сообщения, false: нет). Только не переусердствуйте с переключателями.
При обработке исключений каждое тело метода должно быть, по крайней мере, в блоке try-catch, по крайней мере, с общим уловом Exception в конце. Поместите запись в блок catch, добавьте дополнительную информацию помимо системного сообщения и трассировки стека, чтобы указать, что вызвало ошибку, а затем сгенерируйте ошибку.
Прекратите выдавать ошибки только тогда, когда пользователь был уведомлен об ошибке или вы находитесь на верхнем уровне приложения, у которого нет активного пользовательского интерфейса. (Например, ведение журнала на стороне сервера.) В сообщении клиентскому приложению необходимо указать, что на стороне сервера произошла ошибка.