올바른 방법과 올바른 방법이 무엇인지 아직 확실하지 않습니다. 이제 다음과 같은 방법으로 구현 (안 좋은 솔루션,하지만 적어도 작동)의 경우 :
public void ConfigureServices(IServiceCollection services)
{
......
services.AddScoped<MyCustomNlogTarget>();
}
public void Configure(IApplicationBuilder app,
IHostingEnvironment env,
ILoggerFactory loggerFactory,
IServiceProvider provider)
{
var nlogProvider = ConfigurationItemFactory.Default.CreateInstance;
ConfigurationItemFactory.Default.CreateInstance = type =>
{
try
{
return nlogProvider(type);
}
catch (Exception)
{
}
return provider.GetService(type);
};
loggerFactory.AddNLog();
env.ConfigureNLog("NLog.config");
.......
}
그것은 상자 NLog 제공자 중 (기본 목표 및 레이아웃 렌더링을위한)를 사용하여 객체를 확인하려고
, 경우 그것은 (내 목표를 IService
로 해결하려고 할 때) 실패하고, asp.net 코어 DI를 사용하여 해결됩니다.
출처
2016-11-02 13:10:00
Kai