web-config – NLog配置文件,用于从web.config获取配置设置值

有没有从< ApplicationSettings>获取值的方法? NLog布局变量中的web.config部分?

我已经在我的web.config中存储了SMTP详细信息,并且不希望复制这些设置只是为了在我的NLog.config中使用.

理想情况下,我想做类似的事情:${aspnet-config:SmtpHostServer}
然后从web.config获取

解决方法

除了创建自己的LayoutRenderer之外,我看不到任何明显的方法(见下文).如果您正在进行自己的程序集,请不要忘记将以下内容添加到NLog.Config中:
<extensions>
   <add assembly="YOURASSEMBLYNAMEHERE" />
</extensions>

希望这有助于其他人:

[LayoutRenderer("aspnet-config")]
public class AspNetConfigValueLayoutRenderer : LayoutRenderer
{
    [DefaultParameter]
    public string Variable
    {
        get;
        set;
    }

    protected override void Append(StringBuilder builder,LogEventInfo logEvent)
    {
        if (this.Variable == null)
        {
            return;
        }
        HttpContext context = HttpContext.Current;
        if (context == null)
        {
            return;
        }
        builder.Append(Convert.ToString(System.Configuration.ConfigurationManager.AppSettings[this.Variable],CultureInfo.InvariantCulture));
    }


}

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些