Прежде всего, извинения за субъективно звучащее название. Это задуман как прямой вопрос.
В настоящее время я работаю над набором инструментов:
- Служба C # Windows, в первую очередь
поддерживать базу данных Oracle.
- Служба C # Windows, (которая будет
используется на сайтах с несколькими узлами) для
обрабатывать содержимое базы данных.
- Веб-интерфейс ASP.NET для
облегчить управление в целом
"Система"
В настоящее время службы Windows разработаны как консольные приложения (для упрощения отладки / разработки), и я нахожусь в процессе преобразования этих служб в службы. После тестирования в течение нескольких дней с этими службами я обнаружил, что хотел бы повысить степень детализации ведения журнала. Я обнаружил, что мне не хватает Console.WriteLine (), и я хотел бы предоставить альтернативный источник журнала, такой как плоский файл для этого типа вывода. Это заставило меня задуматься: «Должен ли я использовать фреймворк или мне достаточно?»
Причина, по которой я упомянул аспекты, которые я разрабатываю, состоит в том, чтобы дать представление о моей ситуации. Была создана «основная» DLL, общая для всех компонентов, абстрагирующая уровень взаимодействия между приложениями и базой данных. Именно в этой DLL был создан класс, который будет пытаться "войти в таблицу в базе данных", иначе при ошибке "войти в локальный журнал событий". Вот и все, это степень ведения журнала.
В вышеупомянутых инструментальных средствах есть несколько случаев регистрации, не отличающихся от:
Log.LogError("Code", e.Message + "\n" + e.StackTrace);
Хотя этот метод довольно прост, он использует отражение, чтобы определить источник ошибки.
Мой вопрос
Глядя на мое текущее решение для ведения журнала, оно кажется «достаточным» с точки зрения того, что оно делает и как оно интегрировано со всеми моими решениями. Тем не менее, я смотрел на каркасы журналов (особенно log4net), и их возможности меня впечатлили. Возможность, если потребуется в будущем, добавить другой выходной формат (например, SMTP-сервер) звучит для меня немного круто! :)
Что я хотел бы знать, это преимущества перехода на фреймворк (например, log4net)? Насколько мне придется адаптировать мой код? Или я просто смотрю на зеленую траву на другой стороне? И, наконец, но, наверное, самое главное, я поступаю правильно? Должен ли я просто добавить возможность к своему классу Log в «LogDebug» и покончить с этим? Последнее, что я хотел бы сделать, это полностью пересмотреть мой пакет, просто для «базовой» функции, но если есть другие преимущества (дизайн, надежность, хорошая практика и т. Д.), Я заинтересован.
Спасибо,