Входя в систему библиотека C#

Все,

Интересно, что наиболее успешная практика расценивает вход в библиотеке. Я создаю библиотеку C#, которая будет использоваться пользователями, и в некоторых точках я хочу зарегистрировать ошибку или предупреждение. Действительно ли это - хорошая практика, чтобы использовать log4net и войти в систему файл?

Спасибо,

M

18
задан koumides 4 May 2010 в 10:10
поделиться

6 ответов

Прелесть использования log4net в том, что вашей библиотеке не нужно указывать, где что-то регистрируется. Место назначения (добавление журнала) сообщений журнала определяется конфигурацией, которая указывается приложением (обычно в файле конфигурации).

Итак, да, используйте log4net, следуя их рекомендуемым шаблонам (уникальный «регистратор» для каждого класса), и сообщите вашим пользователям, что ваша библиотека использует log4net. Любые сообщения журнала, которые генерирует код вашей библиотеки, будут маршрутизироваться в соответствии с конфигурацией потребителей (файл, база данных, консоль, трассировка и т. Д.).

РЕДАКТИРОВАТЬ: Вот хороший краткий учебник по log4net, объясняющий основные концепции.

11
ответ дан 30 November 2019 в 07:03
поделиться

log4net - это просто сторонняя библиотека, это не лучшая практика , что вы должны использовать ее в качестве библиотеки журналов при использовании C #. Я бы посоветовал всегда сохранять журнал где-нибудь (чаще всего в текстовом файле). Однако есть также журнал событий (требуется небольшая дополнительная настройка).

Я обычно использую NLog , который, как мне кажется, очень прост в использовании и настройке. Что касается регистрации в ваших библиотеках классов, то на самом деле это просто тот подход, который, по вашему мнению, лучше всего подходит для вашего приложения. Некоторые люди создают 1 регистратор и передают его классам, другие создают отдельный регистратор для каждого регистрируемого класса . Я обычно создаю статический регистратор для каждого класса, и он отлично работает.

2
ответ дан 30 November 2019 в 07:03
поделиться

Я использую log4net в своей собственной библиотеке, но я бы не стал этого делать, если моя библиотека должна использоваться другими (т.е. вне моей организации). В этом случае я бы использовал интерфейс для ведения журнала, предоставил реализацию по умолчанию на основе log4net в отдельной сборке и использовал бы так или иначе, чтобы позволить пользователям библиотеки внедрять свою собственную реализацию.

Сказав это: мне очень нравится log4net, и я бы не стал использовать что-либо еще, но я думаю, что неправильно заставлять других использовать выбранную вами структуру ведения журнала.

Изменить:

  • Я бы также не считал хорошей практикой хранить журнал библиотеки в файле по умолчанию. Пользователи вашей библиотеки должны иметь возможность решать, куда попадают сообщения журнала.
  • Я бы также предоставил реализацию "без операции", которую можно использовать, если вообще не требуется протоколирование. Это, вероятно, должно быть поведением по умолчанию и не требовать каких-либо дополнительных сборок или шагов для реализации.
22
ответ дан 30 November 2019 в 07:03
поделиться

Практика тисков. Хороший способ сделать это - ввести фасад ведения журнала, чтобы вы не Не заботитесь о том, какой регистратор вы используете, у вас есть согласованный общий интерфейс для регистратора.

например, вы можете попробовать это или просто написать свой собственный.

3
ответ дан 30 November 2019 в 07:03
поделиться

Это зависит от того, что вы хотите сделать.

Хотите ли вы иметь механизм регистрации чисто технических вещей, который вы можете включать / выключать с разной степенью детализации (для поддержки)? Или вы хотите регистрировать больше информации, связанной с бизнесом, которая предназначена для быть прочитанным пользователями вашей библиотеки?

Сначала вы должны ответить на эти вопросы, затем вы сможете решить, что регистрировать, где его хранить и как его форматировать ...

В любом случае, log4net - это хороший, зрелый и стабильный фреймворк для всех этих целей. И регистрироваться в скользящем файле - обычная практика (но далеко не единственный вариант ...).

С уважением Томас

0
ответ дан 30 November 2019 в 07:03
поделиться

Что ваши пользователи используют для регистрации?
Это вопрос, на который вам нужно ответить, чтобы определить правильный фреймворк.
Log4net является мощным и относительно простым с моей точки зрения. Вы также можете использовать его для записи логов в streamwriter, если больше ничего не указано.

0
ответ дан 30 November 2019 в 07:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: