У меня есть приложение asp.net mvc, использующее nLog, которое развернуто на 3 серверах, назовем их webserver1, webserver2 и webserver3. В настоящее время каждый записывает файл журнала в базовый каталог/дата приложения/каталог. Я хотел бы иметь только один журнал на определенном сервере (не на веб-серверах). Есть какой-либо способ сделать это?
Использование NLog с несколькими серверами. Хотите записать в 1 файл на определенном сервере
Ответы (1)
У вас есть несколько вариантов:
Возможно, вы сможете настроить целевой файл для ведения журнала в файл, указанный URL-адресом. Не совсем уверен, что это сработает по двум причинам: во-первых, не уверен, что вы можете указать имя файла по URL-адресу. Во-вторых, не уверен, что это хорошая идея, чтобы несколько процессов записывались в один и тот же журнал в один и тот же файл.
Лучший вариант... Используйте DatabaseTarget для отправки сообщений журнала в базу данных.
Еще лучший вариант (??)... Используйте NLogReceiverServiceTarget для входа в NLogReceiverService (служба WCF ). Служба NLogReceiverService WCF на самом деле является просто еще одним «приложением», которое «регистрирует» с помощью NLog, поэтому его назначение ведения журнала (Target) может быть настроено так, как вам нравится (журнал в файл, базу данных и т. д.).