简体   繁体   English

如何以编程方式注册Nlog扩展/布局渲染器(NLog.Web.AspNetCore)?

[英]How to programmatically register Nlog extensions/layout renderers (NLog.Web.AspNetCore)?

There is a guide here that uses a configuration file to register NLog for ASP.Net Core. 有一个指南这里使用的配置文件注册为NLOG核心ASP.Net。 I have followed it, but I'd like to configure things programmatically. 我已经遵循了,但是我想以编程方式配置事物。 Mostly everything works, but I cannot get ASP.Net Core layout renderers to work. 大多数情况下一切正常,但是我无法使ASP.Net Core布局渲染器正常工作。 They do work if I register them myself like this: 如果我自己这样注册它们,它们就会起作用:

LayoutRenderer.Register("aspnet-request-url", typeof(AspNetRequestUrlRenderer));

I see that in file configuration there is a section for that: 我看到在文件配置中有一个部分:

<!-- enable asp.net core layout renderers -->
<extensions>
   <add assembly="NLog.Web.AspNetCore"/>
</extensions>

But I cannot figure out how to do that programmatically for all renderers that are in that assembly. 但是我无法弄清楚如何以编程方式对程序集中的所有渲染器执行此操作。

You could do that as follows: 您可以按照以下步骤进行操作:

ConfigurationItemFactory.Default.RegisterItemsFromAssembly(assembly);

So for NLog.Web.AspNetCore: 因此对于NLog.Web.AspNetCore:

var assembly = typeof(AspNetRequestUrlRenderer).Assembly;
ConfigurationItemFactory.Default.RegisterItemsFromAssembly(assembly);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM