Это зависит от того, что вы подразумеваете под ошибками в уровне представления.Ошибки в коде на стороне сервера, например код WebForms позади?Или ошибки в браузере пользователя?Если последнее, вам, очевидно, нужен какой-то сетевой сервис (существует множество сторонних продуктов для сбора ошибок в браузерах с помощью небольшого количества JavaScript)
Что касается компонентов на стороне сервера, не думайте о регистрациикак механизм вашего уровня данных только потому, что он пишет в базу данных.Думайте об этом как о сквозной проблеме, которая в настоящий момент реализуется через базу данных.Я бы просто использовал стандартную библиотеку журналов, такую как Log4Net или Serilog, для этого на всех уровнях, а не пытался бы обернуть ее в свои собственные абстракции в слое данных.
Вы также обычно не хотите использовать именнотакая же постоянная конфигурация для регистрации, как и для доступа к данным в целом.Например, ведение журнала часто следует выполнять в отдельной базе данных по оперативным причинам, таким как политики резервного копирования.Включение записей в журнал в том же механизме управления транзакциями, что и при доступе к бизнес-данным, также является рецептом для случайного отката записей в журнал при возникновении ошибки, оставляя без знания ошибки.