У меня есть 2 консольных приложения, одно из которых создано в .Net framework 4.6.И другой в .net core 2.0.
Для ведения журнала, в .Net framework я использую log4Net
, в .net core я использую Logger. Этот регистратор напрямую записывает в Application Insights непосредственно в Azure.
Теперь мой вопрос: как настроить регистрацию сообщений с помощью Logger.
В log4Net
я использовал aiappender
и определил шаблон конвертации на основе моих требований.Например,
<appender name="aiAppender" type="Microsoft.ApplicationInsights.Log4NetAppender.ApplicationInsightsAppender, Microsoft.ApplicationInsights.Log4NetAppender">
<layout type="log4net.Layout.PatternLayout">
<parameterName value="@Extra"/>
<conversionPattern value="%date{dd/MM/yy HH:mm:ss} [%thread] %level :: Extra = %property{Extra} %message%newline" />
</layout>
</appender>
Я записал это в log4net.config
и присвоил значения переменной Extra
, как показано ниже.
log4net.GlobalContext.Properties["Extra"] = "SomeValue";
Я хочу выполнить аналогичную настройку для Loggerв ядре .Net.Вот пример кода, который у меня есть.
public class Startup
{
public Startup()
{
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole();
var logger = loggerFactory.CreateLogger<ConsoleLogger>();
logger.LogInformation("Executing Configure()");
}
}
public class HomeController : Controller
{
ILogger _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
_logger.LogInformation("Executing Home/Index");
return View();
}
}
В этом коде, если мне нужна дополнительная информация, аналогичная шаблону Log4Net, как мне это сделать?Любая идея высоко ценится.
PS: я не могу перейти с logger на log4Net, так как на самом деле код довольно большой.Также я не хочу добавлять необходимую информацию каждый раз, когда я регистрирую некоторые данные.