それを行う方法が正しいことと正しい方法はまだよく分かりません。今、次のように実装(ない良い解決策が、少なくともそれが動作)の場合:
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