подход к настройке для простого приложения С# (регистрация событий)

У меня есть простое приложение для ведения журнала С#, которое записывает файл журнала, а затем загружает его на «сервер» либо через HTTP-POST, либо на основе общей папки Windows.

Каким будет «правильный» подход к настройке приложения, чтобы иметь две версии, каждая из которых использует другой метод загрузки?

Должен ли я установить параметр в app.config или мне следует скомпилировать 2 двоичных файла?


person Cilvic    schedule 06.02.2011    source источник
comment
В чем вопрос??... Какие две версии, какую загрузку... не могли бы вы предоставить больше информации...   -  person Shekhar_Pro    schedule 06.02.2011


Ответы (2)


Заставьте ваше приложение читать файл конфигурации во время выполнения (app.config, пользовательский файл xml) и решайте, что делать на основе этого; это лучше, чем компилировать несколько версий одного и того же приложения.

Кроме того, ознакомьтесь с NLog, чтобы получить более полное решение для ведения журнала. NLog использует xml-файл, который считывается во время выполнения; он позволяет сохранять все сообщения журнала в файл (или несколько файлов, в зависимости от уровня ошибки), в консоль или игнорировать определенные ошибки. Гибкость — это хорошо. Вы не всегда можете позволить себе роскошь перекомпилировать приложение только для небольших изменений.

person alex    schedule 06.02.2011
comment
Спасибо, тогда мне нужно добавить разницу параметров в app.config в разных установщиках? - person Cilvic; 06.02.2011
comment
@Cilvic да, это было бы проще. Это решение также позволит вам изменить конфигурацию даже после развертывания вашего приложения. - person alex; 06.02.2011

Ну, это зависит от проектов, использующих ваше приложение для ведения журнала.

Если вы уже используете его во многих других проектах и ​​не можете провести их рефакторинг. Отдельная сборка может быть подходом. Если вы начинаете с нуля, обязательно делайте это по конфигурации. Когда я понимаю, что вы правы, вы говорите о различных типах сети Logger.

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

Если вам нужны разные регистраторы для них, вы можете расширить эти рамки.

person Martin Buberl    schedule 06.02.2011