Я не уверен на 100%, и что вы пытаетесь сделать, поскольку вы упоминаете как отладку, так и ведение журнала.
Регистрация в предложении catch, как правило, является хорошей идеей, если она является частью общего подхода к ведению журнала.
если после отладки службы у вас есть два варианта - если вы можете контролировать, когда код, который вы пытаетесь отлаживать извне службы (с помощью какого-либо внешнего стимула), или у вас есть некоторое время до выполнения кода, вы можно просто открыть исходный код в VS и, если вы скомпилировали его в режиме отладки, вы можете подключить VS к процессу службы.
Тогда любые точки останова, установленные в вашем исходном коде, дадут вам доступ к коду в отладке.
Если, однако, вы не можете этого сделать (например, если вам нужно отладить событие запуска), вы можете добавить System.Diagnostics.Debugger.Break () в исходный код, который будет запускать отладчик, когда эта строка ударил во время выполнения.
Обычно я оборачиваю такие операторы в элементах управления #if #endif символом компиляции.