Как правило, циклические зависимости нежелательны - они усложняют отладку, обслуживание и накладывают ограничения на то, как ваш код может быть структурирован и расширен.По возможности устраните циклические зависимости.
Если для работы регистратора требуется очень мало информации, я бы предложил исключить зависимость DAL от регистратора.Помещение электронных писем в файл конфигурации или использование отдельного механизма, встроенного в регистратор, для доступа к ним.Ведение журнала - это довольно низкоуровневая служебная функция в большинстве систем - вам следует избегать зависимости регистратора от вашей модели доступа к данным.Тем более, что вы хотите иметь возможность регистрировать информацию, даже если база данных недоступна.Несколько бесполезно иметь регистратор, который не может функционировать, когда уровень данных недоступен.
ПРИМЕЧАНИЕ. Существует ли причина, по которой вы не можете использовать существующую библиотеку журналов, например log4net или NLog ?
Если по какой-либо причине это невозможно - тогда может подойти решение Inversion of Control (Dependency Injection).Просто поймите, что вам нужно выделить в какую-то третью сборку интерфейс, предоставляемый регистратором, чтобы вы могли безопасно вызывать его из DAL.