Мы хотим использовать общую библиотеку журналов для веб-приложений ASP.Net Core, функций Azure и веб-служб. NLog кажется хорошим вариантом, поскольку он имеет несколько целей, например Информация о приложении и хранилище таблиц Azure. В идеале я хотел бы сделать что-то вроде вызова CommonTrace (сообщение) и иметь эту функцию
(1) отслеживать другую информацию, такую как (a) Окружающая среда - DEV, TEST, PROD; (b) местное время, (c) System.Runtime.CompilerServices.CallerLineNumber (d) вызов приложения и т. д.
(2) Позвоните в NLog, чтобы записать сообщение и другую информацию. Обратите внимание, что другая информация может быть добавлена к сообщению или сохранена каким-либо другим способом.
Но когда я узнаю больше о NLog и ASP.NET Core, кажется, что если наивно создать базовый класс-обертку для добавления дополнительной информации, можно потерять множество функций, например, доступ к информации о месте вызова и заголовке, которую предоставляют NLog и Microsoft.Extensions.Logging.
Итак, возможно ли полностью создать подкласс NLog, а затем использовать эту оболочку, как это обычно делается в NLog с ASP.Net Core. Или есть ли лучший способ добавить общую информацию из нескольких приложений при использовании NLog?