1214 / 805 / 244
Регистрация: 08.08.2014
Сообщений: 2,368
|
|
1 | |
NLog: частое переконфигурирование в рантайме23.12.2019, 19:11. Показов 1095. Ответов 3
Метки нет (Все метки)
Суть - для каждого клиентского подключения нужно создавать свой отдельный файл лога (физически на диске). Не потом их постобработкой сплиттить и раскладывать красиво, а именно сразу средствами самого логгера.
Сейчас реализация самая простая - при запуске потока, который обрабатывает подключение, кодом создаётся 'FileTarget' с уникальным именем и правило для него, после чего выполняется 'ReconfigExistingLoggers' (все подчинённые потоки, если требуется, запрашивают логгер по тому же уникальному имени). При завершении подключения, правило и 'FileTarget' удаляются из конфига. Речь не про файл конфига, а про ту конфигурацию, что уже загружена - 'NLog.LogManager.Configuration'. В целом работает, но только выглядит сей подход как-то ну очень костыльно. И ещё не понятно, как это скажется на производительности и вообще на работоспособности всех активных логгеров, если будет постоянно вызываться 'ReconfigExistingLoggers'. Может, есть какие-нибудь другие способы реализовать то же самое?
0
|
23.12.2019, 19:11 | |
Ответы с готовыми решениями:
3
Переконфигурирование Оракл Переконфигурирование logback logger в runtime Nlog и DockPanel Suite Не устанавливается библиотека NLog |
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 |
А ну если применены Rules тогда понятно.
Не обязательно. Есть еще LogFactory, которым можно создавать отдельные логгеры у каждого из которых своя конфигурация.
1
|
23.12.2019, 21:37 | |
23.12.2019, 21:37 | |
Помогаю со студенческими работами здесь
4
Использование NLogger (NLog) NLog отказывается работать Изменение дирректории nlog Nlog - ошибки при подключении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |