Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1214 / 805 / 244
Регистрация: 08.08.2014
Сообщений: 2,368
1

NLog: частое переконфигурирование в рантайме

23.12.2019, 19:11. Показов 1095. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Суть - для каждого клиентского подключения нужно создавать свой отдельный файл лога (физически на диске). Не потом их постобработкой сплиттить и раскладывать красиво, а именно сразу средствами самого логгера.

Сейчас реализация самая простая - при запуске потока, который обрабатывает подключение, кодом создаётся 'FileTarget' с уникальным именем и правило для него, после чего выполняется 'ReconfigExistingLoggers' (все подчинённые потоки, если требуется, запрашивают логгер по тому же уникальному имени). При завершении подключения, правило и 'FileTarget' удаляются из конфига. Речь не про файл конфига, а про ту конфигурацию, что уже загружена - 'NLog.LogManager.Configuration'.

В целом работает, но только выглядит сей подход как-то ну очень костыльно. И ещё не понятно, как это скажется на производительности и вообще на работоспособности всех активных логгеров, если будет постоянно вызываться 'ReconfigExistingLoggers'.

Может, есть какие-нибудь другие способы реализовать то же самое?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2019, 19:11
Ответы с готовыми решениями:

Переконфигурирование Оракл
Доброго времени суток, Создалась проблема- существует сервер, на нём стоит программа(базовая часть...

Переконфигурирование logback logger в runtime
Добрый день, подскажите можно ли в runtime изменить конфигурацию всех логгеров? То есть на пример...

Nlog и DockPanel Suite
Есть несколько форм в проекте и есть форма с RichTextBox для вывода логов. Для NLog эта форма...

Не устанавливается библиотека NLog
Здравствуйте! При попытке установки NLog через диспетчер пакетов NuGet отображает сбой и сообщение...

3
1144 / 853 / 262
Регистрация: 30.04.2009
Сообщений: 3,581
23.12.2019, 20:49 2
Как при таком подходе решается проблема логирования из нескольких одновременных подключений?
LogManager он же общий для всех полключений.
0
1214 / 805 / 244
Регистрация: 08.08.2014
Сообщений: 2,368
23.12.2019, 21:20  [ТС] 3
nicolas2008
Так это ведь штатный режим работы для него.
Он на вход получает все данные из всех потоков, а потом, согласно правилам, раскладывает их в файлы в соответствии с фильтрами, указанными в 'Rules'.

Сейчас он все записи пишет в один общий лог и параллельно дублирует каждую в свой файл.

Ну и даже при обычной реализации API на netcore режим работы логгера аналогичный - один общий конфиг и несколько фильтров для раскладывания по тематическим файлам (весь лог, только linqtodb, только пользовательские события).
0
1144 / 853 / 262
Регистрация: 30.04.2009
Сообщений: 3,581
23.12.2019, 21:37 4
Цитата Сообщение от kotelok Посмотреть сообщение
а потом, согласно правилам, раскладывает их в файлы в соответствии с фильтрами, указанными в 'Rules'.
А ну если применены Rules тогда понятно.

Цитата Сообщение от kotelok Посмотреть сообщение
Ну и даже при обычной реализации API на netcore режим работы логгера аналогичный - один общий конфиг и несколько фильтров для раскладывания по тематическим файлам (весь лог, только linqtodb, только пользовательские события).
Не обязательно. Есть еще LogFactory, которым можно создавать отдельные логгеры у каждого из которых своя конфигурация.
1
23.12.2019, 21:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2019, 21:37
Помогаю со студенческими работами здесь

Использование NLogger (NLog)
Добрый день. В своем консольном приложении подключил библиотеку NLog. Добавил в проект конфиг...

NLog отказывается работать
Добрый день! Я явно делаю что-то не так. ранее мне посоветовали эту библиотечку для лога. я с ней...

Изменение дирректории nlog
Подскажите, пожалуйста, как поменять директорию в которую пишутся логи? {@basedir} лезет туда, где...

Nlog - ошибки при подключении
Делаю все как указано в уроке: http://habrahabr.ru/post/176001/ Добавляю в конфиг: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru